Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-简单英语到leet转换器_Java - Fatal编程技术网

Java-简单英语到leet转换器

Java-简单英语到leet转换器,java,Java,我正在尝试创建一个简单的“english to 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", "

我正在尝试创建一个简单的“english to 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
        }
    }
}
publicstaticvoidmain(字符串[]args){
字符串英语[]={“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”};
字符串leet[]={4”,“8”,“3”,“7”,“6”,“6”,“X”,“X”,“M”,“N”,“0”,“9”,“Q”,“2”,“Z”,“7”,“M”,“V”,“W”,“X”,“J”,“Z”};
字符串结果=”;
扫描仪sc=新的扫描仪(System.in);
字符串Str=sc.nextLine();
对于(int i=0;i

}

它需要两个for循环,为了更好地练习,应该使用字符数组而不是字符串数组

以下是解决方案:

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
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'};
字符长度[]={'4','8','(',')','3','}','6','#','!',']','X’、‘M’、‘N’、‘0’、‘9’、‘Q’、‘2’、‘Z’、‘7’、‘M’、‘V’、‘W’、‘X’、‘J’、‘Z’;
字符串结果=”;
扫描仪sc=新的扫描仪(System.in);
字符串Str=sc.nextLine()//希瓦姆
对于(inti=0;i
由于数组english只按顺序列出“A”到“Z”,因此您甚至需要循环遍历english数组,只需执行以下操作:

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
    }
Scanner sc=新扫描仪(System.in);
字符串Str=sc.nextLine().toUpperCase();//将all转换为大写,这样就不需要equalsIgnoreCase()
对于(int i=0;i
将地图用作
地图
。第一个泛型是你的普通字母表,第二个代表leet字符。由于现在的映射,您可以简单地替换每个
char
。谢谢您的帮助,您知道我可以将equalsIgnoreCase放在哪里吗?equalsIgnoreCase是应用于字符串的方法,在这个解决方案中,我们不比较字符串。@StephanRogers我很高兴它对您有所帮助。