微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用HashMap替换字符串中的字符

如何解决用HashMap替换字符串中的字符

我有一些主意要做

我被卡在if语句部分,如何进行比较?

此示例的预期输出为:字符串为1,使用两次测试映射号三。

      String s = "The string 1s is use 2 test the map number3.";
 
        HashMap<Integer,String> map = new HashMap<>();
        map.put(1,"one");
        map.put(2,"two");
        map.put(3,"three");
  
        for (int i = 0; i < s.length(); i++){
        if (s.charat(i) is equals to map.contains(1){
           s[i] = map.get(1);
     }
}

解决方法

您需要将字符转换为数字值,以检查其是否为key中的HashMap。更好的方法是使用StringBuilder,因为如果要在地图中找到String,则要追加String s = "The string 1s is use 2 test the map number3."; HashMap<Integer,String> map = new HashMap<>(); map.put(1,"one"); map.put(2,"two"); map.put(3,"three"); StringBuilder sb = new StringBuilder(); for (char c : s.toCharArray()){ if (Character.isDigit(c) && map.containsKey(Character.getNumericValue(c))){ sb.append(map.get(Character.getNumericValue(c))); }else { sb.append(c); } } System.out.println(sb.toString());

key

另一种解决方案是将字符存储为String s = "The string 1s is use 2 test the map number3."; HashMap<Character,String> map = new HashMap<>(); map.put('1',"one"); map.put('2',"two"); map.put('3',"three"); StringBuilder sb = new StringBuilder(); for (char c : s.toCharArray()){ if (map.containsKey(c)){ sb.append(map.get(c)); }else { sb.append(c); } } System.out.println(sb.toString());

The string ones is use two test the map numberthree.

输出:

val countPlants = MutableLiveData<Int>(0)

override fun loadSingle(..... {

    countPlants.postValue(it.meta?.total ?: 0)

} 
,

您可以迭代地图,并用String中的值替换地图键。

for (Map.Entry<Integer,String> e: map.entrySet()) {
  s = s.replace(e.getKey().toString(),e.getValue());
}

我建议您不要按字符串中的字符进行迭代,因为如果要替换两个或多个数字(例如22),则会遇到问题。

演示:

String s = "The string 1s is use 2 test the map number3.";
HashMap<Integer,"three");
for (Map.Entry<Integer,e.getValue());
}
System.out.println(s);

输出:

The string ones is use two test the map numberthree.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?