Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';我不知道如何将用户输入限制为数字和逗号_Java_Validation_Input_User Input - Fatal编程技术网

Java 我能';我不知道如何将用户输入限制为数字和逗号

Java 我能';我不知道如何将用户输入限制为数字和逗号,java,validation,input,user-input,Java,Validation,Input,User Input,我的程序要求用户输入一组数字,每个数字之间用逗号分隔,如(1,2,3,-4,55.0100)。唯一有效的符号是“0”-“9”-“和”。我想不出如何将输入限制在这些符号上 import java.util.Scanner; import java.util.StringTokenizer; public class Lab9Question2 { public static void main(String[] args) { double total = 0.0; boole

我的程序要求用户输入一组数字,每个数字之间用逗号分隔,如(1,2,3,-4,55.0100)。唯一有效的符号是“0”-“9”-“和”。我想不出如何将输入限制在这些符号上

import java.util.Scanner;
import java.util.StringTokenizer;

public class Lab9Question2 {

public static void main(String[] args) {
    double total = 0.0;
    boolean askMore = true;
    Scanner Keyboard = new Scanner(System.in);

    while (askMore) {
        System.out.println("Enter a series of numbers separated only by 
        commas or type QUIT to exit:");
        String input = Keyboard.nextLine();
        String tokens[] = input.split(",");
          for (String str : tokens)
          {
             total += Integer.parseInt(str);
          }
        System.out.println(total);

        if (input.equalsIgnoreCase("QUIT")){
            askMore = false;
        }

    }

    Keyboard.close();
}
}
这就是我到目前为止所做的,当有人输入不允许的内容时,它仍然不会显示无效输入

boolean askMore = true;
    boolean inputValid = true;
    Scanner Keyboard = new Scanner(System.in);

    while (askMore) {
        total = 0.0;
        System.out.println("Enter a series of numbers separated only by 
    commas or type QUIT to exit:");
        String input = Keyboard.nextLine();

        inputValid = input.matches("[0-9]+" + "," + ".");

        if (inputValid = false){
            System.out.println("Invalid input");
        }

您会想到两种方法:

  • 您可以将
    System.out.println(“输入一系列数字,数字之间仅用空格分隔
    逗号或键入QUIT退出:);
    字符串输入=循环中的Keyboard.nextline()
    。输入完成后,使用正则表达式验证输入是否有效。如果没有,则发送消息并让用户编辑输入。如果可以,请转到
    input.Split()

  • 另一个选项是在每个键上获取输入,并识别输入是否无效。然后,您可以将输入框边框高亮显示为红色,或以其他方式提醒用户其输入无效


  • 编辑:原始答案中遗漏了一行代码,即格式。

    有两种方法可以做到这一点:

  • 您可以将
    System.out.println(“输入一系列数字,数字之间仅用空格分隔
    逗号或键入QUIT退出:);
    字符串输入=循环中的Keyboard.nextline()
    。输入完成后,使用正则表达式验证输入是否有效。如果没有,则发送消息并让用户编辑输入。如果可以,请转到
    input.Split()

  • 另一个选项是在每个键上获取输入,并识别输入是否无效。然后,您可以将输入框边框高亮显示为红色,或以其他方式提醒用户其输入无效


  • 编辑:原始答案中遗漏了一行代码,即格式。

    我认为试图限制用户的输入不是正确的方法。相反,您应该验证用户的输入很抱歉,这是我的意思,这是我到目前为止所做的,但当有人输入超出可用范围的符号时,仍然不会输出“无效输入”。我将把新代码粘贴到上面,我不知道如何把它放在这里。我不认为试图限制用户的输入是正确的方法。相反,您应该验证用户的输入很抱歉,这是我的意思,这是我到目前为止所做的,但当有人输入超出可用范围的符号时,仍然不会输出“无效输入”。我会把新代码贴在上面,我不知道怎么把它放在这里。