java arrays switch-statement incompatibletypeerror

java - Cambiar el tipo de error incompatible



arrays switch-statement (3)

Estoy escribiendo un programa de números romanos para mi clase. Estoy usando una instrucción switch para convertir cadenas en enteros. Sin embargo, recibo un error de tipo incompatible cuando lo ejecuto. Estoy ejecutando Java 7, así que ese no es el problema. Aquí está mi código:

public static void main() { // Declare local variables Scanner input = new Scanner(System.in); String rNum; int i; int[] rArray; // Display program purpose System.out.println("This Program Converts Roman numerals to decimals"); System.out.println("The Roman numerals are I (1), V (5), X (10), L (50), C (100), D (500) and M (1000)."); System.out.print("Enter your roman numeral: "); rNum = input.next().toUpperCase(); rArray = new int[rNum.length()]; for(i = 0; i < rNum.length(); i++){ switch(rNum.charAt(i)){ case "I": rArray[i] = 1; break; } }


Está tratando de unir char (en su switch ()) a String (en sus bloques de casos) que no es válido


La instrucción Switch contiene una variable de carácter, mientras que su caso se refiere a la cadena. Tienes que decidir, quieres usar hilo o char y mantener la uniformidad en todo momento.

Aquí está el código que corrige el problema anterior.

class test { public static void main(){ // Declare local variables Scanner input = new Scanner(System.in); String rNum; int i; int[] rArray; // Display program purpose System.out.println("This Program Converts Roman numerals to decimals"); System.out.println("The Roman numerals are I (1), V (5), X (10), L (50), C (100), D (500) and M (1000)."); System.out.print("Enter your roman numeral: "); rNum = input.next().toUpperCase(); rArray = new int[rNum.length()]; for(i = 0; i < rNum.length(); i++){ switch(rNum.charAt(i)){ case ''I'': rArray[i] = 1; break; case ''V'': rArray[i] = 1; break; case ''X'': rArray[i] = 1; break; case ''L'': rArray[i] = 1; break; //Continue in the same manner as above. //Not sure, if this is the right way to convert and will //convert all types of number. Just check on this. } } } }


"I" es una Cadena de un caracter. ''I'' es el personaje I, escriba char , que es lo que necesita en su bloque de casos.