0
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();
}
}
По какой-то причине это заменит только первое вхождение буквы из String theSecretWord, а не второе, даже если это для каждого цикла проходит через каждый символ и соответственно заменяет его в Letters. Я не понимаю, почему он не заменит больше одного письма.Как заменить второе появление символа в строке? (Java)
Я думаю, что это потому, что цикл останавливается, когда он находит подходящее письмо, хотя оно не должно.
Посмотрите на документацию для строки: http://docs.oracle.com/javase/7/docs/api/java/lang /String.html#indexOf(int) indexOf (char) всегда дает вам первое вхождение – mdewitt
Ваша проблема уже решена здесь: http://stackoverflow.com/questions/5034442/java-indexes-of-all-occurrences-of -character-in-a-string – Lotus
Yup you right @mdewitt Я совсем забыл об этом. –