java如何使用用户输入的字符串编码到程序中,并确保其中包含小数?
我想用Java编写我的程序,在这个程序中,它根据用户输入决定输入是否是有效字符。有效字符包括:数字和小数。我必须验证并确保这些字符无效:+-。(只能出现一次) 迄今为止的代码:
import java.util.Scanner;
public class Program4 {
public static void main(String[] args) {
//Makes Variables
String z;
int max;
// Scanner
Scanner Input = new Scanner(System.in);
// Asks user to input the number
System.out.println("Please enter a valid (4 character) double literal :");
//Accepts users input
z= Input.nextLine();
max = Integer.parseInt(z);
//Based on User input outputs
if (max >= 0.0 & max <= 9.0)
{
System.out.print(max+" is a valid (4 character) double literal");
if (max>9.0){
System.out.print(max+" is a valid (4 character) double literal");
if(max<9.0)
{
System.out.print(max+" is a valid (4 character) double literal");
}
}
}
//closes scanner
Input.close();
}
}
# 1 楼答案
如果要解析无符号十进制数,只需使用^{} :
要仅检查输入是否有效,可以使用正则表达式,如下所示:
# 2 楼答案
我很难理解您真正想要的是什么,但我假设您希望用户输入一个介于0.000和9.999之间的双精度。如果是这种情况,那么将
max
声明为double
,而不是int
。除此之外,不要max = Integer.parseInt(z);
,而是max = Double.parseDouble(z);
但是,如果要验证输入长度,请与
z.length()
进行比较# 3 楼答案
我认为你的代码可能有几个问题,首先你有一段永远不会得出结论的代码,所以你应该改变:
用于:
此外,还应该将输入声明为double而不是int