Comment utiliser un personnage dans un commutateur? Je vais recevoir la première lettre de ce que l'utilisateur saisira.
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");
}
}
}
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");
}
}
}
charAt
obtient un caractère d'une chaîne que vous pouvez activer, car char
est un type entier.
Donc, pour allumer la première char
dans la String
hello
,
switch (hello.charAt(0)) {
case 'a': ... break;
}
Sachez cependant que Java char
s ne correspond pas un à un aux points de code. Voir codePointAt
pour un moyen d'obtenir de manière fiable un seul point de code Unicode.
Comme ça. Sauf que char hi=hello;
devrait être char hi=hello.charAt(0)
. (N'oubliez pas vos déclarations break;
).
L'utilisation d'un caractère lorsque la variable est une chaîne ne fonctionnera pas. En utilisant
switch (hello.charAt(0))
vous allez extraire le premier caractère de la variable-hello au lieu d'essayer de l'utiliser telle quelle, sous forme de chaîne. Vous devez également vous débarrasser de votre espace intérieur
case 'a '
Voici un exemple:
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);
}
}