[英]Replacing letters in two strings
我有兩個字符串和一個 Json 響應:
*Json 不是真正的響應,它有 2 條此示例的記錄。
我想要做的就是更換a
具有bhduh
和b
與eiaja
,我有一個JSON環路告訴我什么,我應該更換了,我需要做這種循環中,所以這里是我的嘗試:
InputString = InputString.replace(From,To);
輸出
eiajahduheiaja
預期產出
bhduheiaja
發生這種情況是因為在第一個循環中,它正在更改a
,而在第二個循環中,有兩個b
, bhduh
的b
和普通字符串中的b
。
循環時間取決於字母數,因此有時可能是 5 或 6,具體取決於服務器 Json 響應。
我想要的是有預期的輸出,有什么想法嗎?
目前還不清楚你有什么 JSON,但我猜你的問題是你用bhduh
替換a
,(包含 a 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());
}
如果您用一些特殊字符(如 - )替換所有原始 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);
很可能不是最好的解決方案,但現在可能是一個可行的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.