我正在尝试创建一个简单的“英语到leet”转换器,但我不知道使用什么方法将字符串转换为leet。
由于某些原因,当我有字符串english []和leet []
时,我不能使用equalsIgnoreCase public static void main(String[] args) {
String english[] = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};
String leet[] = {"4", "8", "(", ")", "3", "}", "6", "#", "!", "]", "X", "|", "M,", "N", "0", "9", "Q", "2", "Z", "7", "M", "V", "W", "X", "J", "Z"};
String result = "";
Scanner sc = new Scanner(System.in);
String Str = sc.nextLine();
for (int i = 0 ; i < english.length ; i++) {
if (Str.equalsIgnoreCase(english)) {
// convert to leet
}
}
}
}
答案 0 :(得分:1)
因为数组英语只列出&#34; A&#34;到&#34; Z&#34;按顺序,你甚至需要遍历英文数组,只需:
Scanner sc = new Scanner(System.in);
String Str = sc.nextLine().toUpperCase(); // convert all to upper case so that you don't need equalsIgnoreCase()
for (int i = 0; i < Str.length(); ++i) {
result +=leet[Str.charAt(i) - 'A']; // Str.charAt(i) - 'A' this will give you the correct index in leet
}
答案 1 :(得分:0)
它需要两个for循环,你应该使用一个字符数组而不是String数组来实现更好的练习。
以下是解决方案:
char english[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
char leet[] = {'4', '8', '(', ')', '3', '}', '6', '#', '!', ']', 'X', '|', 'M', 'N', '0', '9', 'Q', '2', 'Z', '7', 'M', 'V', 'W', 'X', 'J', 'Z'};
String result = "";
Scanner sc = new Scanner(System.in);
String Str = sc.nextLine();//SHIVAM
for (int i = 0 ; i < Str.length() ; i++) {
char tmp = Str.charAt(i);
for(int j = 0 ; j < english.length ; j++){
if(tmp==english[j])
result += leet[j];
}
}
System.out.println(result);//Z#!V4M