如何将字符串拆分为整数?

问题描述 投票:1回答:5

我想拆分一个字符串,并将字符串的每个数字存储为整数。

这是我的测试代码:

public class test {
    public static void main(String[] args){
        int firstGuessDigit, secondGuessDigit, thirdGuessDigit, fourthGuessDigit;
        String guess = "1234";
        String[] parts = guess.split("\");
        firstGuessDigit = Integer.parseInt(parts[0]);
        secondGuessDigit = Integer.parseInt(parts[1]);
        thirdGuessDigit = Integer.parseInt(parts[2]);
        fourthGuessDigit = Integer.parseInt(parts[3]);
    }

}

[运行程序时,出现错误:“线程” main“中的异常java.lang.ArrayIndexOutOfBoundsException:1在test.main(test.java:11)​​

java arrays string split integer
5个回答
1
投票

您可以改用String#toCharArray

char[] parts = guess.toCharArray();
firstGuessDigit = Integer.parseInt(Character.toString(parts[0]));
secondGuessDigit = Integer.parseInt(Character.toString(parts[1]));
thirdGuessDigit = Integer.parseInt(Character.toString(parts[2]));
fourthGuessDigit = Integer.parseInt(Character.toString(parts[3]));

2
投票

您可以使用chars()流获得字符串的字符,并使用Character.getNumericValue将它们映射为它们的数值:

"1234".chars().map(Character::getNumericValue).toArray()

如果您希望将它们作为列表而不是数组来获取,则可以使用:

"1234".chars().map(Character::getNumericValue).boxed().collect(Collectors.toList())

2
投票

您得到的错误是因为您尝试在没有零件时尝试做零件[1]。

您正在寻找的代码是:

String guess = "1234";
int[] guessInteger = new int[guess.length()];
int i=0;
for(Character ch : guess.toCharArray()){
    if(Character.isDigit(ch)){
        guessInteger[i++] = Character.getNumericValue(ch);
    }
}

0
投票

应该这样做。

public class Test {

    public static void main(String[] args) {

        int firstGuessDigit, secondGuessDigit, thirdGuessDigit, fourthGuessDigit;
        String guess = "1234";

        String[] parts = new String[4];
        for(int i = 0; i < 4; i++) {
            parts[i] = ""+guess.charAt(i);
        }

        firstGuessDigit = Integer.parseInt(parts[0]);
        secondGuessDigit = Integer.parseInt(parts[1]);
        thirdGuessDigit = Integer.parseInt(parts[2]);
        fourthGuessDigit = Integer.parseInt(parts[3]);

    } 

}

0
投票

("%-11s%03d%n")%:用作格式化程序。

  • -:减号,用于字符串的左缩进。
  • 11s:此处11表示字符串的最小字段宽度11。
  • 0:将整数填充零。
  • 3d:此处3表示整数的最小字段宽度3。
  • %n:打印新行。

希望,这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.