如何用哈希图中的char替换字符串?

用户名

我有一个可以编码的莫尔斯电码程序。现在,我想对其进行解码,但是我不知道如何用哈希映射中的字母替换一串加密字符。

这是解码方法:

for(int i = 0; i < userInput.length(); i++){
        if(i != 0){
            morse.append(' ');
        }
        morse.append(codeLibrary.get(userInput.charAt(i))); //Currentely the same as encoding, this line needs to change
    }
    return morse.toString();

这是我的哈希图:

public static final java.util.Map<Character, String> codeLibrary;
 static{
    codeLibrary = new HashMap<>();
    codeLibrary.put('a',".-");      codeLibrary.put('b',"-...");
    codeLibrary.put('c',"-.-.");    codeLibrary.put('d',"-..");
    codeLibrary.put('e',".");       codeLibrary.put('f',"..-.");
    codeLibrary.put('g',"--.");     codeLibrary.put('h',"....");
    codeLibrary.put('i',"..");      codeLibrary.put('j',".---");
    codeLibrary.put('k',"-.-");     codeLibrary.put('l',".-..");
    codeLibrary.put('m',"--");      codeLibrary.put('n',"-.");  
    codeLibrary.put('o',"---");     codeLibrary.put('p',".--.");
    codeLibrary.put('q',"--.-");    codeLibrary.put('r',".-.");
    codeLibrary.put('s',"...");     codeLibrary.put('t',"-");
    codeLibrary.put('u',"..-");     codeLibrary.put('v',"...-");
    codeLibrary.put('w',".--");     codeLibrary.put('x',"-..-");
    codeLibrary.put('y',"-.--");    codeLibrary.put('z',"--..");
    codeLibrary.put('1',".----");   codeLibrary.put('2',"..---");
    codeLibrary.put('3',"...--");   codeLibrary.put('4',".----");
    codeLibrary.put('5',".....");   codeLibrary.put('6',"-....");
    codeLibrary.put('7',"--...");   codeLibrary.put('8',"---..");
    codeLibrary.put('9',"----.");   codeLibrary.put('0',"-----");
    codeLibrary.put(' ',"/");
充满鳗鱼的气垫船

您将需要一个单独的Map,一个Map是一个Map<String, Character>,再一个aHashMap<String, Character>可以正常工作,用el填充它


如果这是学校的任务,那么我认为这是解决方案。如果这是用于实际应用程序,那么,继续,按照Jake King的建议使用Guava BiMap库


编辑
你问:

这似乎是很长的路要走。不能插入值来检索密钥吗?

那不是普通地图的工作方式。您使用键来获取值,而不是相反。但这并不难,也不是很“长”。您甚至可以在同一循环中填充两个地图。


例如,...

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

public class MorseFun {
   public static final String[] LETTER_CODES = { ".-", "-...", "-.-.", "-..",
         ".", "..-.", "--.", "....", "..", ".---", "-.-", ".-..", "--", "-.",
         "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--",
         "-..-", "-.--", "--.." };
   public static final String[] NUMBER_CODES = { "-----", ".----", "..---",
         "...--", ".----", ".....", "-....", "--...", "---..", "----." };

   private static Map<Character, String> charToCodeMap = new HashMap<>();
   private static Map<String, Character> codeToCharMap = new HashMap<>();

   public static void main(String[] args) {
      for (int i = 0; i < LETTER_CODES.length; i++) {
         char c = (char) ('a' + i);
         String s = LETTER_CODES[i];
         charToCodeMap.put(c, s);
         codeToCharMap.put(s, c);
      }

      for (int i = 0; i < NUMBER_CODES.length; i++) {
         char c = (char) ('0' + i);
         String s = LETTER_CODES[i];
         charToCodeMap.put(c, s);
         codeToCharMap.put(s, c);
      }



   }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在哈希图中获取字符串和哈希图的混合值

来自分类Dev

如何用哈希值替换字符串中的字母

来自分类Dev

更新哈希图中的字符串值

来自分类Dev

将字符串存储到哈希图中

来自分类Dev

如何检查存储在哈希图中的对象中是否存在字符串?

来自分类Dev

如何检查存储在哈希图中的对象中是否存在字符串?

来自分类Dev

如何分配字符串值并将其存储在哈希图中然后单独检索?

来自分类Dev

如何用哈希解析字符串?

来自分类Dev

如何有效地搜索哈希图中所有值的子字符串?

来自分类Dev

如何有效地搜索哈希图中所有值的子字符串?

来自分类Dev

如何用char类型的单个字符替换字符串中的某些字符?

来自分类Dev

如何用linq替换字符串

来自分类Dev

如何用动态字符串替换字符串

来自分类Dev

在Rust哈希图中分配/实例化字符串/向量的向量?

来自分类Dev

在哈希图中比较字符串与键值时忽略大小写

来自分类Dev

将数组项放入带有 2 个字符串的哈希图中

来自分类Dev

不能将字符串以外的值添加到嵌套的哈希图中

来自分类Dev

如何用“%20”替换字符串中的空格字符?

来自分类Dev

如何用字符串替换转义字符

来自分类Dev

如何用字符替换特定范围的字符串?

来自分类Dev

如何用整数替换字符串中的字符?

来自分类Dev

如何用“ \”字符搜索字符串并将其替换

来自分类Dev

如何用数字替换字符串中的特定字符

来自分类Dev

如何用sed命令替换特定字符的字符串

来自分类Dev

如何用所需的子字符串替换JSon字符串的子字符串

来自分类Dev

我可以使用方便的语法在哈希图中查找字符串键吗?

来自分类Dev

我可以使用方便的语法在哈希图中查找字符串键吗?

来自分类Dev

遍历哈希图的哈希图以检索Java中的字符串值

来自分类Dev

如何使用哈希图从Java中的Unicode字符串中删除重音符号?

Related 相关文章

  1. 1

    如何在哈希图中获取字符串和哈希图的混合值

  2. 2

    如何用哈希值替换字符串中的字母

  3. 3

    更新哈希图中的字符串值

  4. 4

    将字符串存储到哈希图中

  5. 5

    如何检查存储在哈希图中的对象中是否存在字符串?

  6. 6

    如何检查存储在哈希图中的对象中是否存在字符串?

  7. 7

    如何分配字符串值并将其存储在哈希图中然后单独检索?

  8. 8

    如何用哈希解析字符串?

  9. 9

    如何有效地搜索哈希图中所有值的子字符串?

  10. 10

    如何有效地搜索哈希图中所有值的子字符串?

  11. 11

    如何用char类型的单个字符替换字符串中的某些字符?

  12. 12

    如何用linq替换字符串

  13. 13

    如何用动态字符串替换字符串

  14. 14

    在Rust哈希图中分配/实例化字符串/向量的向量?

  15. 15

    在哈希图中比较字符串与键值时忽略大小写

  16. 16

    将数组项放入带有 2 个字符串的哈希图中

  17. 17

    不能将字符串以外的值添加到嵌套的哈希图中

  18. 18

    如何用“%20”替换字符串中的空格字符?

  19. 19

    如何用字符串替换转义字符

  20. 20

    如何用字符替换特定范围的字符串?

  21. 21

    如何用整数替换字符串中的字符?

  22. 22

    如何用“ \”字符搜索字符串并将其替换

  23. 23

    如何用数字替换字符串中的特定字符

  24. 24

    如何用sed命令替换特定字符的字符串

  25. 25

    如何用所需的子字符串替换JSon字符串的子字符串

  26. 26

    我可以使用方便的语法在哈希图中查找字符串键吗?

  27. 27

    我可以使用方便的语法在哈希图中查找字符串键吗?

  28. 28

    遍历哈希图的哈希图以检索Java中的字符串值

  29. 29

    如何使用哈希图从Java中的Unicode字符串中删除重音符号?

热门标签

归档