如何将String中的每个字母与Map的键进行比较?如果每个字母都作为地图的键存在,请将其更改为大写字母.
String str = "abcdef";
Map<String, String> map = new HashMap<String, String>();
map.put("a", "A");
map.put("b", "B");
map.put("c", "C");
map.put("d", "D");
map.put("e", "E");
Run Code Online (Sandbox Code Playgroud)
结果应该是"ABCDEf".如果字符串中的字母在地图中不存在,则该字母将保留在原位.
你可以做到
String after = Stream.of(str.split("")) // a stream of a String for each letter
.map(c-> map.getOrDefault(c, c)) // look up replacement or leave
.collect(Collectors.joining("")); //join into string with no separator
Run Code Online (Sandbox Code Playgroud)
我如何使用String#toCharArray()和String.ValueOf(char []数据)
您可以使用循环代替.
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length;i ++)
chars[i] = map.getOrDefault(""+chars[i], ""+chars[i]).charAt(0);
String after = new String(chars);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |