当前位置: 首页 > 知识库问答 >
问题:

如何使用映射替换字符串中的字符?[关闭]

詹夕
2023-03-14

输入

system.out.println(leetspeech(“柏林”,替换(“b=8,l=1”)));//=>8er1in

柏林的B和l换成了一个8和1。

我的方法看起来是这样的

public static String leetspeech(String s, Map<Character, String> replacings) {
    String ret = "";

    if (s.isEmpty() || replacings.isEmpty()) return ret;

    for (int i =0; i<s.length();i++) {
       // System.out.println(replacings.keySet().toString().toLowerCase());
        if (replacings.containsKey(s.charAt(i))){
            ret =s.replace(s.charAt(i),'_');
        }
    }
    return ret;
}

但不行,有人能帮我吗?

共有1个答案

武晨
2023-03-14

s分配给ret开始。在循环内部,替换ret中的值,并将替换的字符串赋给ret

演示:

import java.util.Map;

public class Main {
    public static void main(String[] args) {
        System.out.println(leetspeech("Berlin", Map.of("B", 8, "i", 1)));
    }

    public static String leetspeech(String s, Map<String, Integer> map) {
        String ret = s;

        if (s.isEmpty() || map.isEmpty())
            return ret;

        for (int i = 0; i < s.length(); i++) {
            String key = String.valueOf(s.charAt(i));
            if (map.containsKey(key)) {
                ret = ret.replace(key, String.valueOf(map.get(key)));
            }
        }
        return ret;
    }
}

输出:

8erl1n
 类似资料:
  • 假设我有一个,我想替换一个值映射,例如: 顺便说一下,字符串也可以是多个字符

  • 我有一个类似“I have a{node1}”的字符串 如何将node1替换为另一个单词。 我想使用正则表达式,但我总是出错

  • 我希望我的程序替换输入字符串中的每个元音。

  • 想改进这个问题吗 通过编辑此帖子,添加详细信息并澄清问题。 https:www.google。com/;ParamName=项目;AccessKey=PDJKJDSJJKNEIOWEMCL/dsjdkhfjf=;值=xyz 在这里,我想用一些虚拟字符串替换值并返回整个字符串。 预期输出:<代码>https:www.google。com/;ParamName=项目;AccessKey=dummyVa

  • 假设我有一个字符串,如下所示: 我想把“abcd”换成“dddd”。我曾试图做这样的事: 它不起作用。有什么建议吗? 编辑:更具体地说,我在Java工作,我试图解析超文本标记语言文档,具体地说

  • 我有一个string和map 的列表,如果元素列表与map的关键元素匹配,我需要用map的值替换string的值。 如何使用Java8的map()/stream()等功能而不是forEach循环来完成同样的操作?我在list和map中有大量字符串元素,需要在最后一个字符串中动态替换这些元素。