最初我寫的是:
輸入乙個string類的變數,如果它既不是a 也不是b,那就報錯,重新輸入。
我寫的**是
scanner sc=new scanner(system.in);
system.out.print("請輸入種類(a或b):");
string type=sc.next();
if(type!="a"&&type!="b")
if(type=="a"||type=="b")
發現無論輸入a還是b,它都不能正確的判斷。
equals()比較的是物件的內容(區分字母的大小寫格式),equalsignorecase()是不區分大小寫比較。但是如果使用「==」比較兩個物件時,比較的是兩個物件的記憶體位址,所以不相等。即使它們內容相等,但是不同物件的記憶體位址也是不相同的。更改為:
if(!type.equals("a")&&!type.equals("b"))
{}if(type.equals("a")||type.equals("b"))
{}
就能正確判斷了。 JAVA String字串判空
正確的寫法 equals str 或 str null str.equals str null str.isempty 錯誤的寫法 str.equals 原因 null不是物件,null沒有分配記憶體空間 null表示這個字串不指向任何的東西,那麼沒有是否為空的問題,因為引用的例項物件都沒有。這時候...
java String型別總結
總結昨天遇到的乙個string型別的知識 在記錄題目之前先補充幾個知識點 1.string a abc 與string b new string abc 此時的變數a b兩個物件不相等。a b不成立 但是 a.equal b 成立 並且無論a,b的定義位置如何,都不會影響到該結論 2.string ...
Java String型別資料的位元組長度
問題描述 向oracle資料庫中一varchar2 64 型別欄位中插入一條string型別資料,程式使用string.length 來進行資料的長度校驗,如果資料是純英文,沒有問題,但是如果資料中包含中文,校驗可以通過,但是在資料入庫時經常會報資料超長。問題分析 既然問題是資料超長,那麼問題應該就...