Java читает только последний символ
Предположим, Что A=1,B=2, C=3
Если я ввожу ABC, то вывод должен быть 123, а не 333, потому что java считывает только последний символ.Ниже приведен мой код. В настоящее время любой помощь будет оценили спасибо.
Что я уже пробовал:
public static void main(String[] args) { // TODO code application logic here Scanner input = new Scanner(System.in); System.out.println("Please enter a 10 character word:"); String a = input.nextLine(); String letters = a.substring(0,3); char letter[] = letters.toCharArray(); for(int i=0;i<letter.length;i++){ for(char c: letter){ switch(c){ case 'A':case'B': case 'C': case 'a': case'b': case 'c': letter[i]='0';break; case 'D':case'E': case 'F': case 'd': case'e': case 'f': letter[i]='1';break; case 'G':case'H':case'I':case'g':case'i':case'h':letter[i]='2';break; case 'J':case'K':case'L':case'j':case'k':case'l':letter[i]='3';break; case 'M':case'N':case'O':case'm':case'n':case'o':letter[i]='4';break; case 'P':case'Q':case'R':case'p':case'q':case'r':letter[i]='5';break; case 'S':case'T':case's':case't':letter[i]='6';break; case 'U':case'V':case'u':case'v':letter[i]='7';break; case 'W':case'X':case'w':case'x':letter[i]='8';break; case 'Y':case'Z':case'y':case'z':letter[i]='9';break; } } System.out.print(letter[i]); }System.out.println(); }
CPallini
Вы повторно используете в качестве входных данных символ, который вы перезаписали. Пожалуйста, сформулируйте свои требования, чтобы получить лучшую помощь.
Jochen Arndt
Опубликованный код не может привести к "333" для "ABC", потому что вы преобразуете A, B и C в "0".
Также нет необходимости во внутренней петле. Это просто пустая трата времени.