Java在字符串的特定位置替换字符?

2022-09-01 00:50:38

我正在尝试替换字符串特定位置的字符。

例如:

String str = "hi";

将字符串位置 #2 (i) 替换为另一个字母“k”

我该怎么做?谢谢!


答案 1

Petar Ivanov字符串问题中替换特定索引处的字符的答案

字符串在 Java 中是不可变的。您无法更改它们。

您需要创建一个替换了字符的新字符串。

String myName = "domanokz";
String newName = myName.substring(0,4)+'x'+myName.substring(5);

或者你可以使用StringBuilder:

StringBuilder myName = new StringBuilder("domanokz");
myName.setCharAt(4, 'x');

System.out.println(myName);

答案 2

凯!

首先,在处理字符串时,您必须引用它们在0基约定中的位置。这意味着如果你有一个这样的字符串:

String str = "hi";
//str length is equal 2 but the character
//'h' is in the position 0 and character 'i' is in the postion 1


考虑到这一点,解决此问题的最佳方法是创建一个方法来替换字符串中给定位置的字符,如下所示:

方法:

public String changeCharInPosition(int position, char ch, String str){
    char[] charArray = str.toCharArray();
    charArray[position] = ch;
    return new String(charArray);
}

然后,您应该以这种方式调用方法“changeCharInPosition”:

String str = "hi";
str = changeCharInPosition(1, 'k', str);
System.out.print(str); //this will return "hk"

如果您有任何疑问,请不要犹豫,发布一些内容!