簡體   English   中英

Java:使用索引處字符串中的子字符串替換特定字符

[英]Java: Replace a specific character with a substring in a string at index

我正在努力如何實際做到這一點。 說我有這個字符串

“這Str1ng i5的樂趣”

我想將“ 1”替換為“一個”,將5替換為“五個”

“這StrOneng iFive樂趣”

我嘗試循環遍歷字符串並手動替換它們,但是計數已關閉。 我也嘗試過使用列表,數組,stringbuilder等,但無法正常工作:

char[] stringAsCharArray = inputString.toCharArray();
ArrayList<Character> charArraylist = new ArrayList<Character>();

for(char character: stringAsCharArray) {
    charArraylist.add(character);
}

int counter = startPosition;

while(counter < endPosition) {
    char temp = charArraylist.get(counter);
    String tempString = Character.toString(temp);
    if(Character.isDigit(temp)){
        char[] tempChars = digits.getDigitString(Integer.parseInt(tempString)).toCharArray(); //convert to number

        charArraylist.remove(counter);
        int addCounter = counter;
        for(char character: tempChars) {
            charArraylist.add(addCounter, character);
            addCounter++;
        }

        counter += tempChars.length;
        endPosition += tempChars.length;
    }
    counter++;
}

我覺得必須有一種簡單的方法來用子字符串替換字符串中的單個字符,而不必進行所有這些迭代。 我在這里錯了嗎?

你可以做

string = string.replace("1", "one");
  1. 不要使用replaceAll ,因為它是根據正則表達式匹配進行替換的(因此您必須注意模式中的特殊字符,這里不是問題)。

  2. 盡管名稱如此, replace也會替換所有出現的事件。

  3. 由於字符串是不可變的,因此請確保將結果值分配在某個位置。

String[][] arr = {{"1", "one"}, 
                           {"5", "five"}};

String str = "String5";
for(String[] a: arr) {
    str = str.replace(a[0], a[1]);
}

System.out.println(str);

這將幫助您用不同的文本替換多個單詞。

或者,您可以使用鏈接替換來執行此操作,例如:

str.replace(1, "One").replace(5, "five");

檢查這種更好的方法: Java一次(或以最有效的方式)替換字符串中的多個不同子字符串

請嘗試以下方法:

string = string.replace("1", "one");
string = string.replace("5", "five");

.replace用指定的字符串替換所有出現的給定字符串,並且非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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