2011-03-31 118 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.*; 

包!