java - 您如何修复此代码,以便如果用户输入大写或小写字母,只要它是正确的字母,他们就会被告知它的索引:
问题描述
在这段代码中,用户猜出 3 次姓名中的字母,然后用户可以猜出实际姓名。有谁知道如何修复此代码,以便如果用户输入“m”,即使名称以大写 M 开头,他们仍然会被告知其位置在哪里?
//import java scanner
import java.util.Scanner;
//declare variables
class Main
{
Scanner scan = new Scanner(System.in);
String name = "Matt";
String guessedName;
int nameLength, position, guesses;
char guess;
//method for guessLetter
public void guessLetter()
{
nameLength = name.length();
System.out.println("The name I am thinking of is " + nameLength + " letters long.\nYou will be able to pick three letters and I'll let you know the location letter occurs in the name. Then you can guess the name.");
guesses = 3;
while(guesses >= 1)
{
System.out.println("Guess one letter?");
guess = scan.nextLine().charAt(0);
letters();
guesses -= 1;
}
}
//method for guess Name
public void guessedName()
{
System.out.println("Guess what you think the name is?");
guessedName = scan.nextLine();
if(guessedName.equalsIgnoreCase(name)){
System.out.println("Correct, that is the name!");
}
else{
System.out.println("Wrong, that is not the correct name.");
System.out.println("The name is " + name + ".");
}
}
//method for letters
public void letters()
{
if(name.indexOf(guess)>-1)
{
position = name.indexOf(guess);
System.out.println(guess + " is at position " + position + ".");
}
else
{
System.out.println(guess + " is not in the name!");
}
}
public static void main(String[] args)
{
Main prog = new Main ();
prog.guessLetter();
prog.guessedName();
}
}
解决方案
只需在循环中检查字符。就是indexOf
这样。像这样的东西。
public void letters() {
String[] chars = name.split("");
for (int i = 0; i < chars.length; i++) {
if(chars[i].equalsIgnoreCase(guess)) {
System.out.println(guess + " is at position " + i + ".");
return;
}
}
System.out.println(guess + " is not in the name!");
}
推荐阅读
- php - 在 BlueSnap 支付网关中如何创建托管支付字段令牌请求
- javascript - react-transition-group v2 和 react-router-dom v4。为什么动画会同时改变内部和外部组件的数据?
- javascript - 如何确保在 Node JS 上的 render() 之前执行查询
- python - 如何在 Python 中使用用户输入生成动态函数名并调用它
- python-3.x - Flask Restplus 返回列连接查询
- c# - Web API 和 Angular 5 令牌认证 - 登录后获取用户信息
- python - 如何在python中调用其他类的方法?
- c# - Winform DataGridView 到 UWP Datagrid C#
- javascript - 让chartjs重新渲染一次
- android - 如何从 Activity-1 中的 Fragment 按钮打开 Activity-2 中的 Fragment-2