2 回答
TA贡献1780条经验 获得超5个赞
假设您有一个开始String,例如Italia.
用户输入字母i,应该发生的事情是
------ > I---i-
让我们首先将待猜测的版本String转换为虚线版本
final String toBeGuessed = "Italia"; // Italia
final String dashed = toBeGuessed.replaceAll(".", "-"); // ------
现在用户输入i一个猜测的字母。我们将其转换为小写以供以后比较。
final char letter = Character.toLowerCase('i');
我们需要做的是更新虚线String,为此我们将使用StringBuilder.
使用 aStringBuilder允许我们设置单个字符。
// Create the StringBuilder starting from ------
final StringBuilder sb = new StringBuilder(dashes);
// Loop the String "Italia"
for (int i = 0; i < toBeGuessed.length(); i++) {
final char toBeGuessedChar = toBeGuessed.charAt(i);
// Is the character at the index "i" what we are looking for?
// Remember to transform the character to the same form as the
// guessed letter, maybe lowercase
final char c = Character.toLowerCase(toBeGuessedChar);
if (c == letter) {
// Yes! Update the StringBuilder
sb.setCharAt(i, toBeGuessedChar);
}
}
// Get the final result
final String result = sb.toString();
TA贡献1818条经验 获得超8个赞
由于在 Java 中字符串是不可变的,因此您不能用另一个字符串替换任何字符串。
hintsQuestionString = hintsQuestionString.replace(hintsQuestionString.charAt(k), letterChar);
上面的行在 Java 中不起作用。
您可以使用 StringBuilder 类来替换字符串
或者
您不必吐出字符串,因为它在 Java 中不起作用,因为 Java 中的 String 类是不可变的。
您可以简单地在 TextView 中设置文本
你从用户那里得到的这个字符串 String hintsQuestionString = hintsQuestion.getText().toString();
然后使用 equals 方法比较整个字符串,如果输入的字符串匹配,则必须设置文本。我自己取了 countryName 变量,你必须用你取的变量替换这个字符串。
if(countryName.equals(hintsQuestionString)) { hintsQuestion.setText(hintsQuestionString); }
我希望这能帮到您。
添加回答
举报