在 Java 中使用 StringTokenizer 时出现问题?

Issues using StringTokenizer in Java?

当我把"I "放入str时,"It is I"没有打印出来, 但是我把"I"写成str,打印的是"It is I"

谁能解释一下这种行为。下面是我的代码。

代码:

String str = "I "; // in = "I"

StringTokenizer st = new StringTokenizer(str, " ", false);
String typeCharater="";

if( st.hasMoreTokens() ) {
    typeCharater = st.nextToken();
}
} else if( typeCharater == "I" ) { 
    System.out.println("It is I"); 
}

我还没有真正使用过 stringtokenizer,但是查看 Java 文档 (http://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html) 和他们提供的示例,我认为问题在于您尝试标记化的字符串参数它只有一个字母,因此它总是 "I"

编辑:此外,如果我没记错的话,在比较字符串时,您想要使用 .equalsIgnoreCase 或任何其他 .equal 方法,因为 == 可能 return 不相等,即使它们相等,由于单独的内存指针。

编辑 2:此外,至于 "I " 与 "I" 我认为原因可能是第一个选项已经有一个 space,所以代码跳过了它,因为作为分隔符的事实是“”。