gpt4 book ai didi

Java-是否有类似于字符串的 hasNextInt() 或 hasNextDouble() 的方法?我想检查用户输入是否只是文本而不是数字

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

我对 Java 还很陌生,当我试图检查用户输入是否是文本(字符串)而不是数字时,我陷入了困境。 hasNext()、next()、nextLine() 不一定检查字符串,所以我不确定如何完成。

import java.util.Scanner;
public class CalculateOne {
public static void main(String[] args) {
System.out.print("Enter a or b");
Scanner scan = new Scanner(System.in);
boolean isItString = scan.hasNextLine();
while (! isItString) {
System.out.print("Invalid Input! \n");
scan.next();
}
String type = scan.nextLine();
System.out.println("you chose "+type);
}

}

最佳答案

您需要使用的是 hasNext(String)hasNext(Pattern) 方法。这些测试下一个标记(使用当前分隔符设置)是否与正则表达式匹配。有相应的 next 方法来消耗 token 。

详情见javadocs对于扫描仪

因此,您唯一要做的就是“实现”正则表达式以匹配您的“非数字”标记。

<小时/>

您还可以调用 next() 来获取下一个标记并测试它是否“不是数字”。但这会消耗 token 。

关于Java-是否有类似于字符串的 hasNextInt() 或 hasNextDouble() 的方法?我想检查用户输入是否只是文本而不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58926596/

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