WHILE-BufferedReader.readLine()内的if()不起作用

时间:2014-03-11 11:28:50

标签: java android

更新: 谢谢大家的答案,特别是.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++;                     
    }
}

由于

2 个答案:

答案 0 :(得分:0)

使用

msgCode.equals("ATT")

而不是

msgCode=="ATT"

使用'=='比较字符串的引用而不是字符串本身。

答案 1 :(得分:0)

永远不要使用==进行Java字符串比较。使用equals()

P.S。好的,可能会出现==适合的情况。但对于绝大多数情况,equals()是可行的方法。