java - 验证用户输入 - 仅字符

标签 java validation user-input

如何仅验证我的用户输入的字符?

package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        System.out.println("C-cement G-gravel S-sand ");
        Scanner scanner = new Scanner(System.in);

        System.out.print("Choose a sack:");
        String sack = (scanner.next());
        int namelenght = sack.length();

        do {
            System.out.println("This is invalid, please try again");
            sack = scanner.next();

        } while ((!scanner.nextLine().matches("[a-zA-Z]+")) || (namelenght >= 1));


    }
}

最佳答案

这是一个工作示例:

import java.util.Scanner;
import java.util.InputMismatchException;
public class Main {

    public static void main(String[] args) {
        System.out.println("C-cement G-gravel S-sand ");
        Scanner scanner = new Scanner(System.in);

        System.out.print("Choose a sack:");
        String sack;
        while(true) {
            try {
                sack = scanner.nextLine();
                if(!sack.matches("[a-zA-Z]+") || sack.length() > 1) {
                    throw new InputMismatchException();
                }
                break;
            }
            catch(InputMismatchException e) {
                System.out.println("Invalid Input! Try again:");
            }
        }
        System.out.println("You've entered: " + sack);

    }
}

这仅接受长度为 1 并且仅包含字母的字符串作为输入。

关于java - 验证用户输入 - 仅字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61895541/

相关文章:

java - 通过从扫描仪中读取行来实例化一个 ArrayList,在哪里声明对象?

java - 删除 EditText 中的第二个点/逗号

java - Android map : how to remove previous circle, 但保留新 map 吗?

php - 我怎样才能消除这个典型的 laravel 5 案例中的重复查询(验证和 Controller )?

java - 删除父项和所有子项

json - 使用 Play 2.4 中其他属性的依赖关系验证 json 属性

java - Spring MVC 验证错误消息

tcl - 在expect脚本中不等待用户输入

php - HTML 输入只读安全风险?

Linux/X11 不创建窗口的输入库