gpt4 book ai didi

java - 阻止用户在java扫描仪中输入数字?

转载 作者:行者123 更新时间:2023-11-30 03:45:55 24 4
gpt4 key购买 nike

我在阻止用户使用扫描仪类输入数字时遇到一些问题。这就是我所拥有的:

package palindrome;

import java.util.Scanner;

public class Palindrome {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);
String word;
String inverse = "";

System.out.println("Write a sentence or word: ");

while (!input.hasNext("[A-Za-z]+")) {
System.out.println("Not valid! Try again: ");
input.nextLine();
}
word = input.nextLine();

word = word.replaceAll("\\s+","");
word = word.toLowerCase();

int length = word.length();
length = length - 1;

for (int i = length; i >= 0; i--) {
inverse = inverse + word.charAt(i);
}

if (word.equals(inverse)) {
System.out.println("Is a palindrome.");
} else {
System.out.println("Is not a palindrome.");
}

}
}

基本上,当我输入一个单词或句子时,我希望它检查输入中的任何位置是否有任何数字,如果有,则需要输入另一个数字,直到没有为止。以下是输出示例:

  • 写一个句子或单词:

    -->11

  • 无效!再试一次:

    --> 1 次测试

  • 无效!再试一次:

    --> 测试 1

  • 不是回文。

正如您所看到的,它适用于大多数情况,但是当我先输入一个单词,然后输入一个空格,后跟一个数字时,它会在没有数字的情况下对其进行评估。我假设发生这种情况是因为在 while 循环中仅检查 input.hasNext 但它应该是 input.hasNextLine 我相信检查整个字符串。但如果我这样做,我就不能有任何争论。非常感谢帮助!

最佳答案

将正则表达式从 [A-Za-z]+ 更改为 ^[A-Za-z]+$ 以防止输入中出现数字-字符串

关于java - 阻止用户在java扫描仪中输入数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25715521/

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