private String theLetters = "_ _ _ _ _\n";
StringBuilder myName = new StringBuilder(theLetters);
for(char e : theSecretWord.toLowerCase().toCharArray())
{
if(e == theUsersGuess.charAt(0))
{
int index = theSecretWord.indexOf(e) * 2;
myName.setCharAt(index, theUsersGuess.charAt(0));
theLetters = myName.toString();
}
}
由于某种原因,这将仅替换字符串theSecretWord中第一次出现的字母,而不替换第二次出现的字母,即使对于每个循环,它都会遍历每个字符并相应地替换为Letter中的字母。我不明白为什么它不能代替一个字母出现多次。
我认为这是因为一旦找到匹配的字母,循环就停止了,即使它没有找到。
最佳答案
另一种方式是
String string1= "Hello";
int first=string1.indexOf('l');
String newstr= string1.substring(0, first+1);
String newstr2= string1.substring(first+1, string1.length()).replaceFirst("l", "k");
System.out.println(newstr+newstr2);
关于java - 如何替换字符串中第二次出现的char? (Java),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21298187/