如何在Java中将字符串转换为整数数组?

时间:2018-12-09 17:25:38

标签: java arrays string integer

如果字符串类似于<form class="form-horizontal" action="{{ path('/save-category') }}" method="POST"> ,并且我想要一个具有相同结构的数组。

我已经尝试过

"19 35 91 12 36 48 59"

4 个答案:

答案 0 :(得分:3)

我将字符串拆分,流式处理数组,分别解析每个元素并将它们收集到数组中:

int[] result = Arrays.stream(str.split(" ")).mapToInt(Integer::parseInt).toArray();

答案 1 :(得分:3)

如果它们之间用空格隔开,则可以像这样将它们一一转换

String array = "19 35 91 12 36 48 59";
// separate them by space
String[] splited = array.split(" ");
// here we will save the numbers
int[] numbers = new int[splited.length];
for(int i = 0; i < splited.length; i++) {
    numbers[i] = Integer.parseInt(splited[i]);
}
System.out.println(Arrays.toString(numbers));        

答案 2 :(得分:1)

即使它可能不如上面的解决方案那么漂亮,您也可以做这样的事情:

 String S;
 int Array[]= new int[S.length()];
 int Counter=0;
 for(int i=0; i<S.length(); i++){
     if(Character.isDigit(S.charAt(i))==true){
        Array[Counter]=Integer.parseInt(S.charAt(i)+"");
        Counter++;
     }
 }

不利的是,如果String并非完全由数字组成,则您的数组将部分为空。根据您使用数组的目的,您可能需要使用其他东西。

答案 3 :(得分:0)

如果要使用Integer[]数组而不是int[],请使用:

String input = "19 35 91 12 36 48 59";
String[] array = input.split(" ");
Integer[] result = Stream.of(array).mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new);