如何将空格分隔的整数字符串转换为JAVA中的数组
假设我有一个字符串“ 1 23 40 187
298”。该字符串仅包含整数和空格。如何将这个字符串转换为整数数组[1,23,40,187,298]。这就是我尝试的方式
public static void main(String[] args) {    String numbers = "12 1 890 65";
    String temp = new String();
    int[] ary = new int[4];
    int j=0;
    for (int i=0;i<numbers.length();i++)
    {
        if (numbers.charAt(i)!=' ')
            temp+=numbers.charAt(i);
        if (numbers.charAt(i)==' '){
            ary[j]=Integer.parseInt(temp);
            j++;
        }
    }
}
但它不起作用,请提供一些帮助。谢谢!
回答:
你忘记了
temp解析为空字符串以创建新数字位后重置为空字符串- 在字符串的末尾将没有空格,所以 
if (numbers.charAt(i) == ' ') {ary[j] = Integer.parseInt(temp);
j++;
}
 
将不会被调用,这意味着您需要调用
    ary[j] = Integer.parseInt(temp);循环后再次
但更简单的方法是只用split(" ")创建令牌的临时数组,然后分析每个令牌int喜欢
String numbers = "12 1 890 65";String[] tokens = numbers.split(" ");
int[] ary = new int[tokens.length];
int i = 0;
for (String token : tokens){
    ary[i++] = Integer.parseInt(token); 
}
也可以通过 添加的流来缩短它:
String numbers = "12 1 890 65";int[] array = Stream.of(numbers.split(" "))
                    .mapToInt(token -> Integer.parseInt(token))
                    .toArray();
其他方法可能是使用Scanner及其nextInt()方法从您的输入返回所有整数。假设您已经知道所需数组的大小,则可以简单地使用
String numbers = "12 1 890 65";int[] ary = new int[4];
int i = 0;
Scanner sc = new Scanner(numbers);
while(sc.hasNextInt()){
    ary[i++] = sc.nextInt();
}
以上是 如何将空格分隔的整数字符串转换为JAVA中的数组 的全部内容, 来源链接: utcz.com/qa/406817.html

