2 回答
TA贡献1869条经验 获得超4个赞
假设您有一个启动,例如 .
用户输入字母,应该发生的事情是StringItaliai
------ > I---i-
让我们首先将待猜到的版本转换为虚线版本String
final String toBeGuessed = "Italia"; // Italia
final String dashed = toBeGuessed.replaceAll(".", "-"); // ------
现在,用户以猜测的字母形式输入。我们将其转换为小写字母,以便以后进行比较。i
final char letter = Character.toLowerCase('i');
我们需要做的是更新虚线,为此我们将使用.
使用 a 允许我们设置单个字符。StringStringBuilderStringBuilder
// 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();
result将是 .I---i-
TA贡献1824条经验 获得超6个赞
就像在Java中一样,字符串是不可变的,因此您无法用另一个字符串替换任何字符串。
hintsQuestionString = hintsQuestionString.replace(hintsQuestionString.charAt(k), letterChar);
上面的行在Java中不起作用。
您可以使用 StringBuilder 类来替换字符串
或
您不必吐出字符串,因为它在Java中不起作用,因为Java中的String类是不可变的。
您只需在文本视图中设置文本即可
你从用户那里得到的这个字符串 String hintsQuestionString = hintsQuestion.getText().toString();
然后使用equals方法比较整个字符串,如果输入的字符串匹配,则必须设置文本。我已经自己获取了 countryName 变量,您必须将此字符串替换为您采用的变量。
if(countryName.equals(hintsQuestionString))
{
hintsQuestion.setText(hintsQuestionString);
}
我希望,这会帮助你。
添加回答
举报