2011-08-02 7 views
7

スイッチケースで文字を使用するにはどうすればよいですか?私は、ユーザーが入力したものの最初の文字を取得します。スイッチのケースでは、どのようにcharをケースとして使用しますか?

import javax.swing.*; 

public class SwitCase { 
    public static void main (String[] args){ 
     String hello=""; 
     hello=JOptionPane.showInputDialog("Input a letter: "); 
     char hi=hello; 
     switch(hi){ 
      case 'a': System.out.println("a"); 
     } 
    } 
} 

答えて

18
public class SwitCase { 
    public static void main (String[] args){ 
     String hello = JOptionPane.showInputDialog("Input a letter: "); 
     char hi = hello.charAt(0); //get the first char. 
     switch(hi){ 
      case 'a': System.out.println("a"); 
     } 
    } 
} 
7

charAt文字列から文字を取得し、charは整数型であるので、あなたはそれらの上に切り替えることができます。だから、Stringhelloに最初charに切り替えるには

switch (hello.charAt(0)) { 
    case 'a': ... break; 
} 

そのJavaのchar sが1対1のコード・ポイントでは対応していませんがあなたは注意する必要があります。単一のUnicodeコードポイントを確実に取得する方法については、codePointAtを参照してください。

0

char hi=hello;char hi=hello.charAt(0)である必要があります。 (あなたのbreak;ステートメントを忘れないでください)。

+0

と 'デフォルト:'だけでなく:Pのおかげ! – Zhianc

0

変数が文字列であるときにcharを使用すると動作しません。

switch (hello.charAt(0)) 

を使用してあなたの代わりに、それは文字列形式で、あるとして変数を使用しようとしているのこんにちは変数の最初の文字を抽出します。あなたはまた、

case 'a ' 
0

の内側にあなたのスペースを取り除くために必要があるここでの例です:

public class Main { 

    public static void main(String[] args) { 

     double val1 = 100; 
     double val2 = 10; 
     char operation = 'd'; 
     double result = 0; 

     switch (operation) { 

      case 'a': 
       result = val1 + val2; break; 

      case 's': 
       result = val1 - val2; break; 
      case 'd': 
       if (val2 != 0) 
        result = val1/val2; break; 
      case 'm': 
       result = val1 * val2; break; 

      default: System.out.println("Not a defined operation"); 


     } 

     System.out.println(result); 
    } 
} 
関連する問題