Java 本程序是为了区分输入值是否正确
用户应输入一个小数点后一位的实数和一个自然数。程序打印用户输入是否正确。因此,当我输入1.4和5时,我希望程序打印“您输入正确”,但它会输出“您输入错误”。我如何解决这个问题 匹配的Java 本程序是为了区分输入值是否正确,java,Java,用户应输入一个小数点后一位的实数和一个自然数。程序打印用户输入是否正确。因此,当我输入1.4和5时,我希望程序打印“您输入正确”,但它会输出“您输入错误”。我如何解决这个问题 匹配的方法采用正则表达式。如果放置\f,则要求它匹配表单提要字符 这里有一个引用:在正则表达式中,\f与浮点数不匹配,正如您所希望的那样-它匹配一种称为“换行符”的特殊字符 尝试将正则表达式匹配更改为: import java.util.Scanner; public class MatchesMethodTest {
方法采用正则表达式。如果放置\f
,则要求它匹配表单提要字符
这里有一个引用:在正则表达式中,\f
与浮点数不匹配,正如您所希望的那样-它匹配一种称为“换行符”的特殊字符
尝试将正则表达式匹配更改为:
import java.util.Scanner;
public class MatchesMethodTest {
public static void main(String[] args) {
String s;
Scanner input = new Scanner(System.in);
System.out.print("Input one real number to one decimal place and one natural number(ex. 1.4 5): ");
s = input.next();
if (s.matches("\\f{1} \\d{1}$"))
System.out.print("You input correctly.");
else
System.out.print("You input incorrectly.");
}
}
这将检查单个数字、句点、数字、空格和最后一个数字。(请注意,您的“自然数”被{1}
术语限制为一位。)
编辑:您可能还需要将input.next()
更改为input.nextLine()
,因为.next()
方法可能只获取第一个整数。未经测试。您能粘贴代码和输出而不是屏幕截图吗?我非常感谢您的帮助。非常感谢你!。
s.matches("\\d{1}\\.\\d{1} \\d{1}$")