2014-10-20 15 views
1

我想这个缓冲的读者转换为字符串,但对于一些reasong if语句不会承认的第一个字母为字符串转换这个的BufferedReader串

BufferedReader userInputMessage = new BufferedReader(new InputStreamReader(System.in)); 
message = userInputMessage.readLine(); 

firstLetter = message.substring(0,1); 

System.out.println("FirstLetter: " + firstLetter + "/"); 
message = message.substring(1); 
System.out.println("Message: " + message + "/"); 

if(!firstLetter.equals("0") || !firstLetter.equals("1")){ 
    System.out.println("First letter not valid!"); 
} 
+0

重新'“这个BufferedReader中转换为字符串”' - 一个BufferedReader是不是字符串,也不能是“转化”为一个字符串。 – 2014-10-20 21:06:22

+2

你是怎么声明'firstLetter'的? – 2014-10-20 21:06:32

+2

另外,如果您的代码导致错误,请打印完整的错误消息,并指出哪一行导致错误发生。 – 2014-10-20 21:07:42

回答

2

这将永远是正确的:

if(!firstLetter.equals("0") || !firstLetter.equals("1")){ 

想一想。如果第一个字母是0,那么第二个部分是真的,如果它是1,那么第一部分将是真的,如果是其他部分,两者都是真的。你想用& &也许是:

if(!firstLetter.equals("0") && !firstLetter.equals("1")){ 
+1

简单但有时难以发现。接得好! + 1 – christopher 2014-10-20 21:09:54

+0

谢谢!有时候难以发现'!case1 ||' – 2014-10-20 21:12:30

+2

!case2'应该立即响起警报。 – 2014-10-20 21:15:48