文字列の解析に問題があります。文字列配列の値が本来あるべき値と等しくない理由がわかりません! これは奇妙に思えるかもしれませんので、コードの簡略化したバージョンを次に示します (アプリケーションははるかに大きいため、要点を説明するために小さなプログラムを作成しました)。
public class Test {
public static void main(String[] args) {
String src = "beep zap derp flop";
String delims = "[ ]+";
String[] tokens = src.split(delims);
if (tokens[0] == "beep") {
System.out.println("you said beep!");
} else {
for (int i = 0; i < tokens.length; i++) {
System.err.println("'" + tokens[i] + "'");
}
}
}
}
私の出力は
'beep'
'zap'
'derp'
'flop'
tokens[0] がビープ音であることは知っていますが、Java は気付いていないようです。私が間違っていることはありますか?