Как преобразовать строку в массив целых чисел в Java? - PullRequest
0 голосов
/ 09 декабря 2018

Если строка похожа на "19 35 91 12 36 48 59" и мне нужен массив такой же структуры.

Я уже пробовал

array[]=Integer.parseInt(str);

Ответы [ 3 ]

0 голосов
/ 09 декабря 2018

если они разделены пробелами, вы можете преобразовать их один за другим, как это

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));        
0 голосов
/ 09 декабря 2018

Вы могли бы также сделать что-то подобное, даже если это не так красиво, как в приведенном выше решении:

 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++;
     }
 }

Недостатком является то, что у вас будет массив, который частично пуст,если строка не полностью состоит из цифр.В зависимости от того, для чего вы используете массив, вы можете использовать что-то еще.

0 голосов
/ 09 декабря 2018

Я бы разбил строку, обработал массив, проанализировал каждый элемент отдельно и собрал их в массив:

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