str.replace(str.charAt(i), letter);
не будет работать, потому что он не заменяет один символ, но все charachters в строке, соответствующей str.charAt(i)
, что вы могли бы сделать, это использовать StringBuilders изменить символ в данный показатель, как это:
String secret = "apple";
StringBuilder str = new StringBuilder("-----");
for (int i = 0; i < 5; i++) {
if (letter == secret.charAt(i)){
str.setCharAt(i, letter);
}
}
System.out.println(str.toString()); // Or simply: System.out.println(str);
Если вы не хотите использовать StringBuilder, что-то вроде этого будет также работать:
String secret = "apple";
String str = "-----";
for (int i = 0; i < 5; i++) {
if (letter == secret.charAt(i)){
str = str.substring(0, i) + secret.charAt(i) + str.substring(i);
}
}
System.out.println(str);
Хотя я консультирую StringBuilder в этом случае.
Надеюсь, это поможет.
, что это 'письмо' в этом случае? и в любом случае вы не можете использовать '==' для проверки 'String' в java – Setu
Нет, это не компиляция. –
'String # replace (char, char)' заменяет все вхождения первого символа вторым, а не только на указанную (вы не указали, потому что не можете) позицию. –