2016-04-18 3 views
0

入力はまた入力が間違ったif文をどのように通過していますか?

として設定された値と文字列s、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 if'を試しました。そして、「が」:

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

私は別のクラスでそれを使用し、それは私が間違っているつもりです

NumberFormatException: For input string: "A" 

の誤差を与えますか?この状態になっているのですか、他のクラスで間違っていますか?

+0

「Aの長さが1であるので、それは 『もし』はない 『他の』を介して行くべきではないのですか?」 's'の長さが1ではないのですか?私はコード内に 'A'変数はありません。 – danludwig

+0

s = Aの値が –

+1

であることを明確にしたはずです。文字列 '' A ''に他の空白文字がないことは間違いありませんか?いくつかの文字は文字列の長さに追加することができますが、人間の目で読み取ると表示されないことがあります。 – danludwig

答えて

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 
関連する問題