我寫了一個應該支持英文和德文的Java程序。如果設置了一個參數,並且如果它等於「英語」或「英語」,它應該調用一種方法來執行英文版本,如果沒有參數或者它不等於「英文」或「英文」德文版的方法。 但是,無論我的參數是什麼,(args [0] ==「english」|| args [0] ==「English」)都是錯誤的,即使它是真實的,我也不明白爲什麼是這樣。爲什麼某個布爾值爲false雖然它應該是真的?
這裏是主要的方法,其他的不重要,所以我會離開它們。
public static void main(String[] args){
boolean input=args.length==1;
System.out.println(input);
boolean mode = false;
if (input) mode=args[0]=="English"||args[0]=="english";
System.out.println(mode);
if(input&&mode) english();
else german();
}
有沒有人有一個線索,爲什麼它不會是真的,不管我的參數?
println的調用是不必要的,我只是把它們放在那裏找出爲什麼英語方法不會被調用。 – Exabytez
這很可能在任何Java常見問題中解釋。不要與字符串== –
比較這個問題有一個額外的維度沒有被[如何比較Java中的字符串](http://stackoverflow.com/questions/513832):locales覆蓋。對於自然語言比較,應使用整理API。 – McDowell