2011-08-02 7 views
7

¿Cómo uso un personaje en una caja de conmutación? Recibiré la primera letra de lo que el usuario ingrese.¿Cómo uso un char como el estuche en una caja de interruptores?

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"); 
     } 
    } 
} 

Respuesta

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 consigue un carácter de una cadena, y se puede cambiar en ellos desde char es un tipo entero.

Así que para activar esta primera char en el Stringhello,

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

Debe tener en cuenta sin embargo que Java char s no se corresponden uno a uno con puntos de código. Consulte codePointAt para obtener de manera confiable un único punto de código Unicode.

0

Me gusta eso. Excepto char hi=hello; debe ser char hi=hello.charAt(0). (No olvide sus declaraciones break;).

+0

y 'por defecto:' así: P gracias! – Zhianc

0

El uso de un carácter cuando la variable es una cadena no funcionará. Usando

switch (hello.charAt(0)) 

va a extraer el primer carácter de la variable hola en lugar de tratar de usar la variable tal como es, en forma de cadena. También es necesario deshacerse de su espacio dentro

case 'a ' 
0

He aquí un ejemplo:

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); 
    } 
} 
Cuestiones relacionadas