gpt4 book ai didi

java - 带扫描仪的打印空间

转载 作者:行者123 更新时间:2023-12-02 12:18:40 25 4
gpt4 key购买 nike

我正在尝试创建一个电影猜谜游戏,有点像刽子手,但你需要猜测电影标题。电影标题采用下划线 ('_') 字符表示的每个字符进行编码。当用户输入正确的字母时,相应字母位置的下划线将更改为该字母。用户使用扫描仪将他的猜测输入为单个字符。我的问题是某些电影标题包含空格('')。但我无法使用扫描仪返回空格...我的猜测是扫描仪使用空格作为默认分隔符,因此它不会返回空格作为字符,因为它使用空格将输入分解为标记?

“返回空格”是指将空格视为输入,而不是分隔符。

谁能给我一个解决方案,告诉我如何从用户输入中检测空格?

此代码应读取 movieTitle,然后如果电影标题在索引 i 处包含空格,并且用户输入是空格,则 codedMovieTitle 应更新为位置 i 处的空格,而不是下划线。然而这不起作用。当我使用扫描仪进入空间时没有任何反应...

    for (int i = 0; i < movieTitle.length(); i++) {       
if(Character.isSpaceChar(movieTitle.charAt(i)) &&
Character.isSpace(userInput)){
encodedMovieTitle = encodedMovieTitle.substring(0, i)
+ userInput
+ encodedMovieTitle.substring(i + 1);
}
}

这是我的扫描仪的代码:

    Scanner scanner = new Scanner(System.in);
char userInput;
while(!gameIsWon && (numberOfGuessesLeft != 0)) {
while (scanner.hasNextInt()) {
System.out.println("You must enter a single character, try again.");
scanner.next();
}
userInput = scanner.nextLine().charAt(0);

我还在努力使我的扫描仪输入不区分大小写。有些电影里有大写字母。如果标题是“Snowstorm”并且用户输入字符“s”,则生成的编码电影标题将为“_ _ _ _ s _ _ _ _”,而不是“S _ _ _ s _ _ _ _”

如果有人有解决方案那就太好了!我发现的大多数解决方案都涉及使用字符串,但我使用字符作为我的用户输入等,因此我想知道是否有涉及字符的解决方案。

用于检查的代码是 userInput(字符)是否在 movieTitle(字符串)中:

    for (int i = 0; i < movieTitle.length(); i++) {
if (updatedCodedMovieTitle.charAt(i) != userInput && movieTitle.charAt(i) == userInput) {
updatedCodedMovieTitle = updatedCodedMovieTitle.substring(0, i)
+ userInput
+ updatedCodedMovieTitle.substring(i + 1);
wordHasBeenUpdated = true;
}
if(Character.isSpaceChar(movieTitle.charAt(i)) && Character.isSpaceChar(userInput)){
updatedCodedMovieTitle = updatedCodedMovieTitle.substring(0, i)
+ " "
+ updatedCodedMovieTitle.substring(i + 1);
}
}

最佳答案

您可以通过以下方式从扫描仪获取输入:

Scanner scanner = new Scanner(System.in);
String str;
str = scanner.nextline();

这将接受空格作为字符而不是分隔符。

希望这有帮助:)

关于java - 带扫描仪的打印空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45963654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com