java - 如何判断用户是否输入了字符串?

标签 java string

Java 很容易判断您是否输入了诸如 .hasNextInt() 之类的数字,但是 String 呢?

do {
    System.out.println("Please enter the students name: ");
    String name = s.nextLine();

    if (name.equalsIgnoreCase("Done")) {
        finished = true;
    } else {
        System.out.println("Please input the students number");
        int studentNo = s.nextInt();
        System.out.println("Please enter that students subject:  ");
        String subject = s.next();
        System.out.println("Pleae enter that students level- ");
        int level = s.nextInt();

        StudentRecords newStudent = new StudentRecords(name, studentNo, subject, level);
        studentRecordList.add(newStudent);
    }
} while (!finished);

我如何让它循环以确保用户输入 String 作为学生姓名,而不是 int 等。

谢谢。

最佳答案

使用正则表达式尝试以下循环:

String name="";
while(!name.matches("[a-zA-Z \'\-ÄäÖöÜüßÉéæø]+")){
    System.out.println("Please enter the student name: ");
    name = s.nextLine();
}

这将要求用户输入,直到给出有效的名称。

关于java - 如何判断用户是否输入了字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27272542/

相关文章:

java - Java 中的字符串转码

python - 如何使用 while 循环摆脱空字符串? (Python)

java - 在 primefaces DataTable 中显示 Hashmap 键和值

java - Hibernate,从OneToMany列表中获取用户

java - Kafka - 如何模拟消费者记录?

c++ - 解析字符串以获取 int

json - 如何在 swift 4 的 httpBody 中同时发送字符串值和 json 值

java - 当我查询 presto 数据时,mybatis 遇到一些问题

java - @ElementCollection Java持久化(Hibernate)导致加载重复实例

使用 format 命令进行 python 字符串操作