替换字符串方法java中的每个字母

时间:2017-02-09 03:33:48

标签: java string algorithm

我必须创建一个带有字符串输入的java方法,它必须返回一个字符串。

该方法必须接受输入字符串,并将该字符串中的每个字母替换为表中的另一个字母。

例如表格是:

Input | Output
 a     | n
 c     | H
 h     | B
 @     | q

如果输入为“aahh @”,则输出必须为“nnBBq”

请帮助这个java方法谢谢。如何在java中有效地存储表。真实表格更长,即35个术语。感谢

我试过这个......

public String func(String s){
   for (int i=0; i<5; i++){
      //what to do?
   }
}

此致 盖尔

1 个答案:

答案 0 :(得分:0)

假设您的角色转换表存储在Map<Character, Character>中,则应执行此操作:

Map<Character, Character> map = new HashMap<>();
StringBuffer result = str.chars()
    .mapToObj(i -> map.get((char)i) == null ? String.valueOf((char) i)
            : String.valueOf((char) map.get((char)i)))
    .collect(Collectors.reducing(new StringBuffer(), StringBuffer::new, StringBuffer::append));

此代码使用IntStream方法从char获取代表String个人的String#chars。然后它遍历它们中的每一个,在地图中查找它们并在需要时替换它们,最后它使用可变StringBuffer类执行变异减少。如果您需要结果为String,只需调用其toString方法。