我的输入是如何通过错误的if语句传递的?

时间:2016-04-18 01:59:09

标签: java string if-statement numberformatexception

输入是一个字符串s,其值设置为A

另外,请注意X是一个字符,Y是一个整数

if (s.length() == 1)
{
    X = s.charAt(0);
    Y = 1;
}
else
{
    X = s.charAt(0);
    Y = Integer.parseInt(s.substring(1));
}

A的长度是1,所以不应该通过'如果'而不是'其他'? 我试过了一个&else; else if if;和'如果':

if (s.length() > 1)
{
    X = s.charAt(0);
    Y = Integer.parseInt(s.substring(1));
}

当我在另一个班级使用它时,它给我一个错误

NumberFormatException: For input string: "A"

我哪里错了?是在这个if条件还是我在其他班级出错了?

1 个答案:

答案 0 :(得分:0)

只是代码的副本,以证明您的代码没有错误。在其他地方肯定有其他错误但在此处显示的代码中没有。

String s = "A";
char X;
int Y;
if (s.length() == 1) {
    System.out.println("'if' block executed");
    X = s.charAt(0);
    Y = 1;
} else {
    System.out.println("'else' block executed");
    X = s.charAt(0);
    Y = Integer.parseInt(s.substring(1));
}
System.out.println("X = " + X + ", Y = " + Y);

输出到控制台是:

'if' block executed
X = A, Y = 1