如果字符串类似于<form class="form-horizontal" action="{{ path('/save-category') }}" method="POST">
,并且我想要一个具有相同结构的数组。
我已经尝试过
"19 35 91 12 36 48 59"
答案 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);