Строки неизменны в Java.Это означает, что вы не можете изменить строковый объект, как только вы его создали.Однако вы можете создать новую строку и затем переназначить ее переменной.
state = state.substring(0, i) + word.charAt(i) + state.substring(i + 1);
Однако в этой ситуации я думаю, что было бы лучше использовать изменяемый тип для state
, такой как массив символов (char[]
).Это позволяет вам напрямую изменять отдельные символы.
Вторая проблема с вашим кодом состоит в том, что guess
, вероятно, должен быть символом, а не строкой.В настоящее время ваш оператор if
всегда будет возвращать значение false, поскольку объект типа string
никогда не будет равен объекту типа char
.