2012-10-09 88 views
1

我想寫一個switch語句,它使用char來表示每個case。在我的書的例子表明,我可以用一個char要做到這一點,但是當我編譯我的程序,我得到這樣的:在case情況下使用char的switch語句?

StudentInvoiceListMenuApp.java:54: error: incompatible types 
     case 'R': 
      ^
    required: String 
    found: char 
    1 error 

這是我的代碼:

switch (inputCode) { 

     case 'R': 
      System.out.println("\nEnter file name:"); 
      fileName = menuApp.nextLine(); 
      if (inputCode.trim().length() == 0) { 
       break; // no file name entered 
      } 

回答

5

貌似inputCodeString型,不char ...因此,如果您使用的是Java 7,你只是想將其更改爲:

case "R": 

或者,改變類型至char,在其他地方作適當調整。 (如果你不使用Java 7,這將是你唯一的選擇 - 但我懷疑你使用Java 7時,否則你會得到不同的編譯器錯誤。)

1

問題是inputCode是一個字符串。如果你想看看字符串的第一個元素,你應該做的:

switch (inputCode[0]) { 

如果你想用一個字符串來比較,你應該做的:

case "R": 
0

inputCode似乎的String實例,你試圖將它與char比較,

字符串在開關與支持和Java -7

0

inputCode是一個String實例。

相關問題