程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 代碼-同一個參數代入同一方法體為什麼輸出結果就是不一樣。

代碼-同一個參數代入同一方法體為什麼輸出結果就是不一樣。

編輯:編程綜合問答
同一個參數代入同一方法體為什麼輸出結果就是不一樣。

方法,作用:寫入一個字符串幫我把這個字符串歸類。

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;
    }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved