Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 用不同的字符替换字符串的所有字符_Java_Binary_Translators - Fatal编程技术网

Java 用不同的字符替换字符串的所有字符

Java 用不同的字符替换字符串的所有字符,java,binary,translators,Java,Binary,Translators,我正试图用一个HashMap制作一个“翻译器”,它可以将文本转换成二进制,但我不太明白如何用所述字符的值替换所有字符。例子。键:“a”值:“0110 0001”。这就是我现在所拥有的。我还是个初学者,所以请纠正我的错误。谢谢大家! import java.util.Scanner; import java.util.Map; import java.util.HashMap; public class Main{ public static void main(String[

我正试图用一个HashMap制作一个“翻译器”,它可以将文本转换成二进制,但我不太明白如何用所述字符的值替换所有字符。例子。键:“a”值:“0110 0001”。这就是我现在所拥有的。我还是个初学者,所以请纠正我的错误。谢谢大家!

import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;

public class Main{
    
    public static void main(String[] args){

        Scanner scan = new Scanner(System.in);
        HashMap<String, String> translator = new HashMap<String, String>();

        translator.put("0", "0011 0000");
        translator.put("1", "0011 0001");
        translator.put("2", "0011 0010");
        translator.put("3", "0011 0011");
        translator.put("4", "0011 0100");
        translator.put("5", "0011 0101");
        translator.put("6", "0011 0110");
        translator.put("7", "0011 0111");
        translator.put("8", "0011 1000");
        translator.put("9", "0011 1001");
        translator.put("A", "0100 0001");
        translator.put("B", "0100 0010");
        translator.put("C", "0100 0011");
        translator.put("D", "0100 0100");
        translator.put("E", "0100 0101");
        translator.put("F", "0100 0110");
        translator.put("G", "0100 0111");
        translator.put("H", "0100 1000");
        translator.put("I", "0100 1001");
        translator.put("J", "0100 1010");
        translator.put("K", "0100 1011");
        translator.put("L", "0100 1100");
        translator.put("M", "0100 1101");
        translator.put("N", "0100 1110");
        translator.put("O", "0100 1111");
        translator.put("P", "0101 0000");
        translator.put("Q", "0101 0001");
        translator.put("R", "0101 0010");
        translator.put("S", "0101 0011");
        translator.put("T", "0101 0100");
        translator.put("U", "0101 0101");
        translator.put("V", "0101 0110");
        translator.put("W", "0101 0111");
        translator.put("X", "0101 1000");
        translator.put("Y", "0101 1001");
        translator.put("Z", "0101 1010");
        translator.put("a", "0110 0001");
        translator.put("b", "0110 0010");
        translator.put("c", "0110 0011");
        translator.put("d", "0110 0100");
        translator.put("e", "0110 0101");
        translator.put("f", "0110 0110");
        translator.put("g", "0110 0111");
        translator.put("h", "0110 1000");
        translator.put("i", "0110 1001");
        translator.put("j", "0110 1010");
        translator.put("k", "0110 1011");
        translator.put("l", "0110 1100");
        translator.put("m", "0110 1101");
        translator.put("n", "0110 1110");
        translator.put("o", "0110 1111");
        translator.put("p", "0111 0000");
        translator.put("q", "0111 0001");
        translator.put("r", "0111 0010");
        translator.put("s", "0111 0011");
        translator.put("t", "0111 0100");
        translator.put("u", "0111 0101");
        translator.put("v", "0111 0110");
        translator.put("w", "0111 0111");
        translator.put("x", "0111 1000");
        translator.put("y", "0111 1001");
        translator.put("z", "0111 1010");
 
        System.out.println("Enter a phrase : ");
        String txt = scan.nextLine();
        String diffTxt = null;

        for(int i = 0; i < txt.length(); i++){

            Character tmp = txt.charAt(i);
            String tmpName = tmp.toString();

            for(Map.Entry<String, String> entry : translator.entrySet()){
                
                if(tmpName.equals(entry.getKey())){ 
                    diffTxt = txt.replace(tmp.toString(), entry.getValue());
                }
            }
            System.out.println(diffTxt);
        }
        
    }
}
import java.util.Scanner;
导入java.util.Map;
导入java.util.HashMap;
公共班机{
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
HashMap translator=新的HashMap();
翻译。输入(“0”,“0011 0000”);
翻译器。输入(“1”,“0011 0001”);
翻译器.put(“2”,“0011 0010”);
翻译器.put(“3”,“0011 0011”);
翻译器。put(“4”,“0011 0100”);
翻译器。put(“5”,“0011 0101”);
翻译器。put(“6”,“0011 0110”);
翻译器。put(“7”,“0011 0111”);
翻译器。输入(“8”,“0011 1000”);
翻译器。put(“9”,“0011 1001”);
翻译器。put(“A”,“0100 0001”);
翻译器。put(“B”,“0100010”);
翻译。put(“C”,“0100 0011”);
翻译器.put(“D”,“0100 0100”);
翻译。put(“E”,“0100 0101”);
翻译器。put(“F”,“0100 0110”);
翻译器。put(“G”,“0100 0111”);
翻译。put(“H”,“0100 1000”);
翻译。把(“I”,“0100 1001”);
翻译。put(“J”,“0100 1010”);
翻译。put(“K”,“0100 1011”);
翻译器。put(“L”,“0100 1100”);
翻译。put(“M”,“0100 1101”);
翻译器。put(“N”,“0100 1110”);
翻译器。put(“O”,“0100 1111”);
翻译。put(“P”,“0101 0000”);
翻译。put(“Q”,“0101 0001”);
翻译。put(“R”,“0101 0010”);
翻译。put(“S”,“0101 0011”);
翻译。put(“T”,“0101 0100”);
翻译。put(“U”,“0101 0101”);
翻译器.put(“V”,“0101 0110”);
翻译器。put(“W”,“0101 0111”);
翻译器。put(“X”,“0101 1000”);
翻译器。输入(“Y”,“0101 1001”);
翻译器。put(“Z”,“0101 1010”);
翻译器。put(“a”,“0110 0001”);
翻译器.put(“b”,“01100010”);
翻译。put(“c”,“01100011”);
翻译。put(“d”,“0110100”);
翻译。put(“e”,“0110101”);
翻译。把(“f”,“01100110”);
翻译器.put(“g”,“0110 0111”);
翻译。put(“h”,“0110 1000”);
翻译。把(“i”,“01101001”);
翻译器.put(“j”,“0110 1010”);
翻译器。put(“k”,“01101011”);
翻译器。put(“l”,“01101100”);
翻译。put(“m”,“01101101”);
翻译器。put(“n”,“01101110”);
翻译器。put(“o”,“01101111”);
翻译。put(“p”,“0111 0000”);
翻译。put(“q”,“0111 0001”);
翻译。put(“r”,“01110010”);
翻译器。put(“s”、“01110011”);
翻译。put(“t”,“0110100”);
翻译。put(“u”,“0111 0101”);
翻译。把(“v”,“0111 0110”);
翻译器。put(“w”,“0111 0111”);
翻译器。put(“x”,“0111 1000”);
翻译器。输入(“y”、“0111001”);
翻译器。put(“z”,“0111010”);
System.out.println(“输入短语:”);
String txt=scan.nextLine();
字符串diffTxt=null;
对于(int i=0;i
我会将字符串转换为数组并使用array.stream().map()。在那里,您可以使用手动定义的地图。最后,使用array.join再次获取字符串


只是一个想法,也许还有更好的。

只需迭代输入字符串的字符数组表示形式,并使用每个字符的字符串表示形式作为键,从
转换器
映射中获取相应的值

System.out.println(“输入短语:”);
char[]txt=scan.nextLine().tocharray()//使用char数组更舒适、更快
for(字符c:txt){
System.out.print(translator.get(String.valueOf(txt[i]))+“”;//您需要char-value的字符串表示,因为映射的键是String
}
因此,输入:

Grejuc Andrei
将打印:

0100 0111 0111 0010 0110 0101 0110 1010 0111 0101 0110 0011 null 0100 0001 0110 1110 0110 0100 0111 0010 0110 0101 0110 1001

注意打印文本包含
null
,我将此留给您确定原因。

因此,您说明了要解决的问题,并向我们展示了您的代码。干得好!你希望其他人现在做什么?谢谢!这有助于简化代码,而且它确实有效。我认为“null”是两个单词之间的空格。因为我的HashMap中没有引入空格。我想通过添加它来解决这个问题,但是我如何定义一个空的空间?@ GrejucAndrei,请考虑接受并支持帮助你的答案。这是一条一般规则,也是本网站上最好的“谢谢”。它还将向未来的读者指出,哪个答案是有用的。