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/

10-16 04:14