簡體   English   中英

替換兩個字符串中的字母

[英]Replacing letters in two strings

我有兩個字符串和一個 Json 響應:

  1. InputString = "ab";
  2. 輸出字符串 = "";
  3. Json(示例,不是真實的):數組(From:a,to:bhduh - From:b, to:eiaja)。

*Json 不是真正的響應,它有 2 條此示例的記錄。

我想要做的就是更換a具有bhduhbeiaja ,我有一個JSON環路告訴我什么,我應該更換了,我需要做這種循環中,所以這里是我的嘗試:

InputString = InputString.replace(From,To); 

輸出

eiajahduheiaja

預期產出

bhduheiaja

發生這種情況是因為在第一個循環中,它正在更改a ,而在第二個循環中,有兩個bbhduhb和普通字符串中的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM