将整数数组转换为字符串数组

2022-09-01 21:51:54

所以我有这个“列表”的ints。它可以是一个、 、 、 什么。Vectorint[]List<Integer>

不过,我的目标是对整数进行排序,并最终得到一个.int 数组如何像在空中一样开始。String[]

例如:开头为:结尾为:{5,1,2,11,3}String[] = {"1","2","3","5","11"}

有没有在没有for循环的情况下执行此操作?我现在有一个 for 循环来收集 ints。我宁愿跳过做另一个for循环。


答案 1
int[] nums = {5,1,2,11,3}; //List or Vector
Arrays.sort(nums); //Collections.sort() for List,Vector
String a=Arrays.toString(nums); //toString the List or Vector
String ar[]=a.substring(1,a.length()-1).split(", ");
System.out.println(Arrays.toString(ar));

更新:

较短的版本:

int[] nums = {-5,1,2,11,3};
Arrays.sort(nums);
String[] a=Arrays.toString(nums).split("[\\[\\]]")[1].split(", "); 
System.out.println(Arrays.toString(a));  

答案 2

使用 Java 8 中提供的 a。要获取包含“列表”整数的实例:StreamStream

  • int[]
    • IntStream intStream = Arrays.Stream(nums);
    • Stream<Integer> intStream = Arrays.Stream(nums).boxed();如果您需要与底部相同的类。
  • 对于任何具有接口的类(例如 ,Collection<Integer>Vector<Integer>List<Integer>)
    • Stream<Integer> intStream = nums.stream();

最后,得到一个:String[]

String[] answer = intStream.sorted().mapToObj(String::valueOf).toArray(String[]::new);