A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘建龙 于 2012-6-20 14:10 编辑

import java.util.Scanner;
public class _121212
{
        public static void main(String[] args)
        {               
               
                        judge("你是美女吧?是/否","别这么自恋吧!","别这么没自信吧!","你的输入有误。。。");
                                
        }
        public static void judge(String a,String b,String c,String d)
        {
                        Scanner sc = new Scanner(System.in);
                        System.out.println(a);
                        String ss=sc.nextLine();
                        if (ss=="是")
                        {
                                System.out.println(b);
                        }
                        else if (ss=="否")
                        {
                                System.out.println(c);
                        }
                        else
                        {
                                System.out.println(d);
                        }
        }
}

本意识答:是,输出一段字符串;否,输出另一端字符串。但是结果是不能输出对应的字符串。一直都是:你的输入有误。。。但是改为输入int类型后比如0代替是,1代替否,就可以了!难道字符串还有隐藏的字符码?

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 太恶搞了吧~

查看全部评分

4 个回复

倒序浏览
这事正确的代码,解释见注释部分。
  1. import java.util.Scanner;
  2. public class Test
  3. {
  4.         public static void main(String[] args)
  5.         {               
  6.                
  7.                         judge("你是美女吧?是/否","别这么自恋吧!","别这么没自信吧!","你的输入有误。。。");
  8.                                 
  9.         }
  10.         public static void judge(String a,String b,String c,String d)
  11.         {
  12.                         Scanner sc = new Scanner(System.in);
  13.                         System.out.println(a);
  14.                         String ss=sc.nextLine();
  15.                         if (ss.equals("是"))
  16. //这里你用的是==,但是这个==比较的是内存地址,但是你用“是”将会建立两个不同的对象,将有不同的地址值,所以会输出那个输入有误的信息。应该用equals方法,他比较的是对象的值。
  17.                         {
  18.                                 System.out.println(b);
  19.                         }
  20.                         else if (ss.equals("否"))
  21.                         {
  22.                                 System.out.println(c);
  23.                         }
  24.                         else
  25.                         {
  26.                                 System.out.println(d);
  27.                         }
  28.         }
  29. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
你的“==”改成equals()就行了,字符比较要用equals()方法,比如if ("是".equals(ss))
回复 使用道具 举报
比较的方式不对

“==”比较的是对象的内存地址
应该用equals(),比较的是对象的值。

点评

精辟!简洁 一目了然  发表于 2012-6-15 22:54

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
薄炳鑫 发表于 2012-6-15 22:28
这事正确的代码,解释见注释部分。

恩恩,收到,完全的好使了!谢谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马