2011-03-31 85 views
0
import java.util.Scanner; 
public class Mal { 
    public static void main(String[] args) { 
     System.out.println("Welcome"); 
     Scanner myinput = new Scanner(System. in); 
     System.out.println("Make your choise. \n 1.Check a card number \n 2.Quit."); 
     int choise = myinput.nextInt(); 
     switch (choise) { 
     case 1: 
      System.out.println("Enter your credit card number: "); 
      break; 
     case 2: 
      System.out.println("Are you sure?"); 
      String answer = myinput.next(); 
      if (answer == "yes") { 
       System.out.println("Byee "); 
      } else { 
       break; 
      } 
     default: 
      System.out.println("Idiot!"); 
      break; 
     } 
    } 

我怎样才能得到键盘的字符串答案?在Java程序中帮助

+4

什么是键盘?这个计划的目的是什么? – 2011-03-31 02:02:30

+0

我猜[[Clavier]](http://en.wikipedia.org/wiki/Clavier)的意思是“键盘”。 – 2011-03-31 02:07:24

+0

你的意思是它不是鱼蛋? – 2011-03-31 02:11:47

回答

2

您想使用equals方法而不是==运算符。原因是==运算符没有引用比较,equals方法检查两个String值是否相同。

这里是更新的代码,你应该尝试:

if (answer.equals("yes")) { 
    System.out.println("Byee "); 
} else { 
    break; 
} 
0

说不上是什么 “的Clavier” 的意思在这里,但这是错误的:

answer == "yes" 

你要比较使用equals方法字符串:

answer.equals("yes") 

,否则将无法正常工作。

+0

thanx寻求帮助。我也有一个Q. 我想要一个程序,如果用户输入与“yes”不同的东西,则再次出现。 – 2011-03-31 02:15:19

+0

您可以在“while(true)”块内放置整个事物(从“让您的选择”行切换到开关的末尾) ;那么当您退出交换机而不退出时,您将返回并再次提示用户输入。请投票/接受:) – 2011-03-31 02:17:25

0

字符串比较应该使用.equals()方法,而不是与==操作符进行。

==运算符比较两个对象引用以查看它们是否引用同一个实例。方法equals()比较String对象内的字符。

​​- 返回如果 引用指向内存中的同 对象,计算一个布尔值。

<object ref>.equals(<object ref>) - 返回该对象的equals()方法的值。如果 equals()方法不存在,则调用 类的“对象” 类的equals方法。

你的代码应该是,

if (answer.equals("yes")) { 
       System.out.println("Byee "); 
      } else { 
       break; 
      } 
0

我你想从控制台读取字符串值。为此你可以使用BufferedReader。下面是它的语法:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
str = br.readLine(); // String str; 

您需要使用进口的BufferedReader的InputStreamReader和:

import java.io.*; 

包!