方法,作用:寫入一個字符串幫我把這個字符串歸類。
public static String getBQ(String div){
if(div=="MAD·AMV"||div=="MMD·3D"||div=="原創·配音"||div=="綜合")
//省略一部分
else if(div=="翻唱"||div=="VOCALOID·UTAU"||div=="演奏"||div=="三次元音樂"||div=="音樂視頻"||div=="音樂選集")
div="音樂";
else
div="其它";
return div;
}
String yu=bili.getdata(q,"typename");
o="翻唱";
st.setString(27,bili.getBQ(yu));
System.out.println(yu+"----"+o);//翻唱----翻唱
System.out.println(yu.equals(o));//true
System.out.println(bili.getdata(q,"typename"));//翻唱
System.out.println(bili.getBQ(yu)+"----"+bili.getBQ(o));//其它----音樂
System.out.print(bili.getBQ(yu).equals(bili.getBQ(o)));//false
注釋是控制台輸出結果,我糾結了半個小時左看右看,就是百思不得其解,同一個參數代入同一個方法體輸出結果不同,究竟犯了什麼小白(說的我不是小白似的)錯誤才會出現這情況。。
第一次來這裡問問題,求各位老司機,碼農,程序猿解答一下我的問題。
字符串比較要用equals,你yu和o兩個不一樣,區別應該在getdata中,getdata中字符串是new String的方式出來的。字符串==比較的是字符串地址。如果一個是new的(String yu = new String("翻唱"),一個是直接賦值(String o="翻唱")這種方式,兩個yu==o是false,yu.equals(o)是true
public static String getBQ(String div){
if(div.equals("MAD·AMV")||div.equals("MMD·3D")||div.equals("原創·配音")||div.equals("綜合"))
//省略一部分
else if(div.equals("翻唱")||div.equals("VOCALOID·UTAU")||div.equals("演奏")||div.equals("三次元音樂")||div.equals("音樂視頻")||div.equals("音樂選集"))
div="音樂";
else
div="其它";
return div;
}