如何将字符串中的所有数字都转换为整数?

时间:2019-11-21 11:04:55

标签: java arrays string split

例如,如果我输入“ 0 3 5 2 5 5”行,如何将数字转换为包含“ 0,3,5,2,5,5,5”的数组

现在,我使用此代码,但是它不起作用。


        System.out.println("How many numbers?");
        int numbers = in.nextInt();

        System.out.println("write in the following way:");
        System.out.println("num1 num2 num3 ");
        String msg = in.next() + "  ";

        int[] list = omv(numbers, msg);
        for (int i = 0; i < numbers; i++){
            System.out.println(list[i]);
        }

    }

    static int[] omv(int num, String msd) {

        int separat1 = 0;
        int separatee2 = 0;
        int[] list = new int[antal - 1];
        String letter;
        int letterint;
        int length = meddelande.length();

        while (separate1 >= length || separate1 != -1 || separate2 >= length || separate2 != -1) {

            separate1 = msg.indexOf(' ', separate2);
            // Hittar nästa mellanslag

            letter = msg.substring(separate2, separate1);
            // ERROR HERE

            letterint = Integer.parseInt(letter);


            list[i] = letterint;

            separate2 = (separate1 + 1);

            i++;

        }
        return list;
    }

这不起作用,并且在 字母= msg.substring(分隔符2,分隔符1) 我还没有找到解决此问题的方法,请帮忙,非常感谢

3 个答案:

答案 0 :(得分:3)

如果您使用的是Java-8,则可以使用:

int[] ints = Arrays.stream(" 0 3 5 2 5 5 ".trim().split("\\s+"))
        .mapToInt(Integer::valueOf)
        .toArray();

答案 1 :(得分:2)

如果您没有Java 8或更高版本,则可以采用经典方式:

public static void main(String[] args) {
    String numberString = " 0 3 5 2 5 5 ";
    // trim and split the String by an arbitrary amount of whitespaces
    String[] stringNumbers = numberString.trim().split("\\s+");
    // create an array of integers with the same size
    int[] numbers = new int[stringNumbers.length];

    // parse each String-number to int and put it into the int array
    for (int i = 0; i < numbers.length; i++) {
        numbers[i] = Integer.valueOf(stringNumbers[i]);
    }

    // print all the numbers from the int array
    for (int num : numbers) {
        System.out.println(num);
    }
}

输出:

0
3
5
2
5
5

答案 2 :(得分:1)

如果字符串中有空格,则可以使用

String numbers="0 3 5 2 5 5";
String numbersArr[] = numbers.split(" ");

所以你会有一个数组

因此,如果您想要一个数字数组,可以这样做

int newNumbersArr[] = new int[numbersArr.length];
for(int i = 0; i<numbersArr.length; i++){
  newNumbersArr[i] = Integer.valueOf(numbersArr[i]);
}