用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.

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...