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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 遗忘 中级黑马   /  2013-10-4 17:08  /  2683 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 遗忘 于 2013-10-7 13:29 编辑

import java.util.Scanner;
public class TestCustomer {
        public static void main(String[] args){
                CustomerBiz customer = new CustomerBiz();
                boolean con = true;
                Scanner input = new Scanner(System.in);
                while(con){
                        //循环输入客户名
                        System.out.println("请输入客户姓名:");
                        String newName = input.next();
                        customer.addName( newName);
                        
                        System.out.println("继续输入吗?(y/n):");
                        String choice = input.next();
                        if(choice.equals("n")){
                                con = false;
                        }
                }        
                customer.showNames();
                System.out.print("\n请输入要查找的客户姓名:");
                String name1 = input.next();
                System.out.println("***********查找结果*************");
                if(customer.search(name1)==false){
                        System.out.println("没找到!");
                }else{
                        System.out.println("找到了!");
                }
        }
}

class CustomerBiz {
        // 客户类
        String[] names = new String[20];
        public void addName(String name){
                //增加客户姓名
                for(int i =0;i<names.length;i++){
                        if(names==null){
             names =name;
                                break;
                        }
                }
        }
        
        public void showNames(){
                //显示全部客户姓名
                System.out.println("**************************");
                System.out.println("\t客户姓名列表:");
                System.out.println("**************************");
                for(int i =0;i<names.length;i++){
                        if(names!=null){
                                System.out.print(names+"\t");
                        }
                }
                System.out.println();
                }
        public boolean search(String name){
                //查找用户
                boolean find = false;        
                for(int i =0;i<names.length;i++){
                        if(names!=null){
                                if(names==name){                                       
                                        find = true;
                                        break;
                                }else{
                                        find = false;
                                }
                        }
                }                        
        return find;
        }
}






评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

14 个回复

倒序浏览
  1. import java.util.Scanner;
  2. public class Test11 {
  3.         public static void main(String[] args){
  4.                 CustomerBiz customer = new CustomerBiz();
  5.                 boolean con = true;
  6.                 Scanner input = new Scanner(System.in);
  7.                 while(con){
  8.                         //循环输入客户名
  9.                         System.out.println("请输入客户姓名:");
  10.                         String newName = input.next();
  11.                         customer.addName( newName);

  12.                         System.out.println("继续输入吗?(y/n):");
  13.                         String choice = input.next();
  14.                         if(choice.equals("n")){
  15.                                 con = false;
  16.                         }
  17.                 }        
  18.                 customer.showNames();
  19.                 System.out.print("\n请输入要查找的客户姓名:");
  20.                 String name1 = input.next();
  21.                 System.out.println("***********查找结果*************");
  22.                 if(customer.search(name1)==false){
  23.                         System.out.println("没找到!");
  24.                 }else{
  25.                         System.out.println("找到了!");
  26.                 }
  27.         }
  28. }
  29. class CustomerBiz {                       //public的话应该把类放到另一个文件中
  30.         // 客户类
  31.         String[] names = new String[20];
  32.         public void addName(String name){
  33.                 //增加客户姓名
  34.                 for(int i =0;i<names.length;i++){
  35.                         if(names==null){
  36.                                 names =name;         //你没有给下标
  37.                                 break;
  38.                         }
  39.                 }
  40.         }

  41.         public void showNames(){
  42.                 //显示全部客户姓名
  43.                 System.out.println("**************************");
  44.                 System.out.println("\t客户姓名列表:");
  45.                 System.out.println("**************************");
  46.                 for(int i =0;i<names.length;i++){
  47.                         if(names!=null){
  48.                                 System.out.print(names+"\t");
  49.                         }
  50.                 }
  51.                 System.out.println();
  52.                 }
  53.         public boolean search(String name){
  54.                 //查找用户
  55.                 boolean find = false;        
  56.                 for(int i =0;i<names.length;i++){
  57.                         if(names!=null){
  58.                                 if(names==name){         //  你没有给下标
  59.                                         find = true;
  60.                                         break;
  61.                                 }else{
  62.                                         find = false;
  63.                                 }
  64.                         }
  65.                 }                        
  66.         return find;
  67.         }
  68. }
复制代码
你有两个地方没有给出下标.我已经指出来了.还有,我看了实验了下最终结果.最终结果可能不是你想要的.(你自己分析下,应该是String数组你没有设计好).
还有输出方法。还有public class的话,应该放到另外一个文件中。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
赖龙威 发表于 2013-10-4 17:23
你有两个地方没有给出下标.我已经指出来了.还有,我看了实验了下最终结果.最终结果可能不是你想要的.(你自己 ...

谢谢 不过我刚才编辑下  发的和自己粘贴的不一样 就是改不过来 斜线部分的 我再发下吧
回复 使用道具 举报
class CustomerBiz {
        // 客户类
        String[] names = new String[20];
        public void addName(String name){
                //增加客户姓名
                for(int i =0;i<names.length;i++){
                        if(names[i]==null){
                                names[i] =name;
                                break;
                        }
                }
        }
       
        public void showNames(){
                //显示全部客户姓名
                System.out.println("**************************");
                System.out.println("\t客户姓名列表:");
                System.out.println("**************************");
                for(int i =0;i<names.length;i++){
                        if(names[i]!=null){
                                System.out.print(names[i]+"\t");
                        }
                }
                System.out.println();
                }
        public boolean search(String name){
                //查找用户
                boolean find = false;       
                for(int i =0;i<names.length;i++){
                        if(names[i]!=null){
                                if(names[i]==name){                                       
                                        find = true;
                                        break;
                                }else{
                                        find = false;
                                }
                        }
                }                       
        return find;
        }
}
回复 使用道具 举报
遗忘 发表于 2013-10-4 17:26
谢谢 不过我刚才编辑下  发的和自己粘贴的不一样 就是改不过来 斜线部分的 我再发下吧
...

你已经弄好了

回复 使用道具 举报
本帖最后由 麦子 于 2013-10-4 18:07 编辑

哥么,你数组咋学的,要努力啊   names==name    没有可比性   
应该是  names == name; 所有地方都要修改  (你的names 是一个字符串数组,你要想拿到里面的成员,就要用数组的方法,即角标的方式)

修改后如下,请自跑,我没跑,但结果应该是你想要的
  1. import java.util.Scanner;
  2. public class TestCustomer {
  3.         public static void main(String[] args){
  4.                 CustomerBiz customer = new CustomerBiz();
  5.                 boolean con = true;
  6.                 Scanner input = new Scanner(System.in);
  7.                 while(con){
  8.                         //循环输入客户名
  9.                         System.out.println("请输入客户姓名:");
  10.                         String newName = input.next();
  11.                         customer.addName( newName);
  12.                         
  13.                         System.out.println("继续输入吗?(y/n):");
  14.                         String choice = input.next();
  15.                         if(choice.equals("n")){
  16.                                 con = false;
  17.                         }
  18.                 }        
  19.                 customer.showNames();
  20.                                 System.out.print("\n请输入要查找的客户姓名:");
  21.                 String name1 = input.next();
  22.                 System.out.println("***********查找结果*************");
  23.                 if(customer.search(name1)==false){
  24.                         System.out.println("没找到!");
  25.                 }else{
  26.                         System.out.println("找到了!");
  27.                 }
  28.         }
  29. }

  30. class CustomerBiz {
  31.         // 客户类
  32.         String[] names = new String[20];
  33.         public void addName(String name)
  34.                 {
  35.              //增加客户姓名
  36.              for(int i =0;i<names.length;i++)
  37.                          {
  38.                  if(names [i] ==null)
  39.                              {
  40.                       names [i] =name;
  41.                       break;
  42.                  }
  43.              }
  44.         }
  45.                 public void showNames(){
  46.                 //显示全部客户姓名
  47.                 System.out.println("**************************");
  48.                 System.out.println("\t客户姓名列表:");
  49.                 System.out.println("**************************");
  50.                 for(int i =0;i<names.length;i++){
  51.                         if(names [i] !=null){
  52.                                 System.out.print(names [i] +"\t");
  53.                         }
  54.                 }
  55.                 System.out.println();
  56.                 }
  57.                 public boolean search(String name){
  58.                 //查找用户
  59.                 boolean find = false;        
  60.                 for(int i =0;i<names.length;i++){
  61.                         if(names [i] !=null){
  62.                                 if(names [i] .equals(name)){                                       
  63.                                         find = true;
  64.                                         break;
  65.                                 }else{
  66.                                         find = false;
  67.                                 }
  68.                         }
  69.                 }                        
  70.         return find;
  71.         }
  72. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
遗忘 中级黑马 2013-10-4 17:52:51
7#
麦子 发表于 2013-10-4 17:48
哥么,你数组咋学的,要努力啊   names==name    没有可比性   
应该是  names == name; 所有地方都要修改 ...

谢谢 ,这个我知道 ,因为不知道怎么的 我发完了 斜线部分那下标就没有了 编辑好多次都改不过来 所以在下面又从新发过了
回复 使用道具 举报
遗忘 中级黑马 2013-10-4 17:54:16
8#
遗忘 发表于 2013-10-4 17:52
谢谢 ,这个我知道 ,因为不知道怎么的 我发完了 斜线部分那下标就没有了 编辑好多次都改不过来 所以在下 ...

你看看 你发的斜线部分的下标是不是也没了 不知道怎么回事
回复 使用道具 举报
遗忘 中级黑马 2013-10-4 17:59:53
9#

又没下标了 names[i].equals(name) 和names[i]==name有什么区别

本帖最后由 遗忘 于 2013-10-4 18:01 编辑
麦子 发表于 2013-10-4 17:48
哥么,你数组咋学的,要努力啊   names==name    没有可比性   
应该是  names == name; 所有地方都要修改 ...

names.equals(name) 和 names==name 有什么区别?麻烦说些好吗?
回复 使用道具 举报
麦子 发表于 2013-10-4 17:48
哥么,你数组咋学的,要努力啊   names==name    没有可比性   
应该是  names == name; 所有地方都要修改 ...

又没下标了 names.equals(name) 和names==name有什么区别
回复 使用道具 举报
继续解答楼上的   names.equals(name) 和names==name有什么区别

String 是引用数据类型,例 String a = "zxcv";   a存放在栈内存中,存放的是a指向的字符串对象在堆内存中的地址,而a的实体数据则存放在堆内存中。

显然,你用  ==  比较的是他们在堆内存中的地址
而使用字符串特有的方法 equals()  则比较的是他们的值

如果是基本数据类型  那你用  ==  比较的就是他们的值   一定要分清楚

不知道我的讲解,你是否懂了,不懂继续M我,呵呵。。。

加油!!!
回复 使用道具 举报
遗忘 发表于 2013-10-4 17:54
你看看 你发的斜线部分的下标是不是也没了 不知道怎么回事

可能是这个浏览版不用代码编辑,而直接用文本贴上时存在的bug
回复 使用道具 举报
学习学习!
回复 使用道具 举报
麦子 发表于 2013-10-4 18:20
继续解答楼上的   names.equals(name) 和names==name有什么区别

String 是引用数据类型,例 String a = "z ...

谢谢 明白了
回复 使用道具 举报
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马