更新: 谢谢大家的答案,特别是.equals()。
唯一的细节是“msgCode = ...”和“msgValue = ...”语句足以返回一个空的stirngBuilder。即,我甚至不必声明IF语句以使其停止工作。
任何线索?
ORIGINAL:
请让我知道当StringBuilder
中包含其余代码(stringBuilder.append(...)
除外)时while()
没有返回任何内容(可能甚至不起作用)。
当我只包含stringBuilder.append(...)
时,会有一个返回值。
while ( (receiveString = bufferedReader.readLine()) != null ) {
stringBuilder.append(receiveString + "\n");
// analyze the first 3 characters in the message
String msgCode = receiveString.substring(0, 3);
Number msgValue = Integer.parseInt(receiveString.substring(4, receiveString.length()-4));
// use IF-ELSE since SWITCH doesn't work with String
if (msgCode=="ATT") {
dataATT[2*dataATTcount+1] = msgValue;
dataATTcount++;
} else {
dataMED[2*dataMEDcount+1] = msgValue;
dataMEDcount++;
}
}
由于
答案 0 :(得分:0)
使用
msgCode.equals("ATT")
而不是
msgCode=="ATT"
使用'=='比较字符串的引用而不是字符串本身。
答案 1 :(得分:0)
永远不要使用==
进行Java字符串比较。使用equals()
。
P.S。好的,可能会出现==
适合的情况。但对于绝大多数情况,equals()
是可行的方法。