带空格的整数仍可读为整数吗?

时间:2013-06-14 06:43:02

标签: java

我刚刚开始学习Java,我正在尝试猜一个数字游戏,无论如何我正在使用

    int guess = Integer.parseInt(stringGuess);

    inputLine = is.readLine();
    Integer.parseInt(inputLine);

我想知道是否有任何方法我可以让程序识别并使用一堆空格作为整数进行识别,基本上我如何编码它以便“0”将被识别为0?

6 个答案:

答案 0 :(得分:1)

int guess = Integer.parseInt(stringGuess.trim());

请参阅http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#trim%28%29

答案 1 :(得分:1)

更强大的“工具”是从字符串中删除所有非数字字符,可以这样做:

int guess = Integer.parseInt(stringGuess.replaceAll("\\D", ""));

答案 2 :(得分:0)

if (stringGuess!=null) {
int guess = Integer.parseInt(stringGuess.trim());
}

答案 3 :(得分:0)

int guess = 0

if(stringGuess != null) {
    try {
        guess = Integer.parseInt(stringGuess.trim());
    } catch(NumberFormatException nfe) {
        // inform user that the number was bad?
    }
}

如果您还需要处理数字之间的空格(或任何非数字),您可以使用:

int guess = 0

if(stringGuess != null) {
    try {
        guess = Integer.parseInt(stringGuess.replaceAll("[^0-9]+", ""));
    } catch(NumberFormatException nfe) {
        // inform user that the number was bad?
    }
}

答案 4 :(得分:0)

Scanner sc = new Scanner(System.in);
int guess = 0
if(sc.hasNextInt())
    guess = sc.nextInt();

然而,它会检测到像“1 2 3 4”这样的字符串为四个不同的整数,而不是1234,如果这就是你的意思。

答案 5 :(得分:0)

trim()只能省略前导和尾随空格。

如果您不想使用replace("\\D", ""),我认为您可以自行实施parseInt()方法,您可以复制Integer.parseInt的代码并添加if (s.charAt(i++) != ' ')digit = Character.digit(s.charAt(i++),radix);之前,将Character.digit(s.charAt(i++),radix)更改为Character.digit(s.charAt(i),radix)