正则匹配字符串问题?

HashMap<String, String> base = new HashMap<>();
base.put("!",  "0");
base.put("@",  "1");
base.put("#",  "2");
base.put("$",  "3");
base.put("%",  "4");
base.put("^",  "5");
base.put("&",  "6");
base.put("*",  "7");
base.put("(",  "8");
base.put(")",  "9");
base.put("|",  "/");
base.put("{",  "+");
base.put("}",  "=");
 
字符串 "TV/RJek16S+T0=" -> 替换成 "TV|RJek@&S{T!}"
反转   "TV|RJek@&S{T!}" -> "TV/RJek16S+T0="
阅读 1.8k
2 个回答

不用正则,用替换的方法

let base = {
  "!": "0",
  "@": "1",
  "#": "2",
  "$": "3",
  "%": "4",
  "^": "5",
  "&": "6",
  "*": "7",
  "(": "8",
  ")": "9",
  "|": "/",
  "{": "+",
  "}": "="
};
let str = "TV/RJek16S+T0=";
Object.entries(base).forEach(([key,val])=>{
    str = str.replaceAll(val,key);
})
console.log(str);//TV|RJek@&S{T!}
let str = "TV|RJek@&S{T!}";
Object.entries(base).forEach(([key,val])=>{
    str = str.replaceAll(key,val);
})
console.log(str);//TV/RJek16S+T0=

ps 感觉像作业

直接替换就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题