我有两个字符串和一个Json响应:
* Json不是一个真正的回应,它有2个记录这个例子。
我想要做的是将a
替换为bhduh
,将b
替换为eiaja
,我有一个JSON循环告诉我应该替换的内容,以及我需要在那个循环内完成,所以这就是我尝试过的:
InputString = InputString.replace(From,To);
输出
eiajahduheiaja
预期产出
bhduheiaja
这种情况正在发生,因为在第一个循环中,它正在改变a
,而在第二个循环中,有两个b
,{{1} } b
中的bhduh
和普通字符串中的b
。
循环时间取决于字母数,因此有时它可以是5或6,具体取决于服务器Json响应。
我想要的是预期输出,任何想法?
答案 0 :(得分:1)
目前还不清楚你有什么JSON,但我猜你的问题是你用a
取代bhduh
,(包含b
),然后你试着用其他东西替换b
。显然这是不正确的。
您需要遍历初始输入,然后将替换附加到其他字符串,而不是替换您的输入。
例如,使用HashMap
public static void main (String[] args) throws java.lang.Exception
{
String input = "ab";
HashMap<Character, String> replacements = new HashMap<Character, String>() {{
put('a', "bhduh");
put('b', "eiaja");
}};
StringBuilder sb = new StringBuilder();
for (char c : input.toCharArray()) {
String rep = replacements.get(c);
if (rep != null) {
sb.append(rep);
}
}
System.out.println(sb.toString());
}
答案 1 :(得分:0)
如果你用一些特殊字符替换所有原始的a,而所有的原始b都用另一个特殊字符替换,如* 然后,您应该能够用所需的短语替换特殊字符。
类似的东西:
String str = "ab";
str =str.replace("a", "-");
str =str.replace("b", "*");
str =str.replace("-", "bhduh");
str =str.replace("*","eiaja");
System.out.println(str);
很可能不是最好的解决方案,但现在可能是一个有效的解决方案。