qq_15676309 2015-04-02 14:06 采纳率: 66.7%
浏览 1667
已采纳

同一个参数代入同一方法体为什么输出结果就是不一样。

方法,作用:写入一个字符串帮我把这个字符串归类。

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

注释是控制台输出结果,我纠结了半个小时左看右看,就是百思不得其解,同一个参数代入同一个方法体输出结果不同,究竟犯了什么小白(说的我不是小白似的)错误才会出现这情况。。
部分代码以及控制台输出结果
第一次来这里问问题,求各位老司机,码农,程序猿解答一下我的问题。

  • 写回答

4条回答 默认 最新

  • danielinbiti 2015-04-02 14:35
    关注

    字符串比较要用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;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch
  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端