我试图让浮点数的正则表达式起作用。我一直收到错误
无法在基本类型float上调用matches(String)。
有任何帮助吗?我有点迷路了。
System.out.print("Enter $ amount of loan:");
payment = scanner.nextFloat();
while (!Regulations.paymentmatch(payment)) {
System.out.println("Information Not Correctly Entered");
System.out.printf("Please try again: ");
payment = scanner.nextFloat();
}
public static boolean paymentmatch(float a) {
return a.matches("\\d+.?\\d{2}");
}
答案 0 :(得分:1)
如果您想允许用户键入非浮点值然后读取它并告诉它们它不是有效的浮点值,您就不能使用nextFloat
来读取它,因为......如果它不是有效的浮动值,它就不会起作用。
使用hasNextFloat
,它会告诉您扫描仪是否可以读取float
(但是不会让您告诉用户他们输入的东西不是浮动的),或使用nextLine
阅读他们输入的内容(作为String
),然后验证(通过matches
)。