如何在 Java 中指定带有破折号的数字模式

肌萎缩侧索硬化症

对于这段代码,我试图让用户输入一个数字模式,如“####-##-###”,包括破折号。我有这个代码,但它返回一个错误。

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.Scanner;

public class StudentNumber {

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("Enter your student number: ");
        int su;
        Pattern p = Pattern.compile("[\\d]{4,}+[-?]{1,1}+[\\d]{2,}+[-?]{1,1}+[\\d]{3,}");
        su = s.nextInt();
        String input = String.valueOf(su);
        Matcher m = p.matcher(input);
        if (m.matches()){
            System.out.println("You have successfully logged in.\nWelcome to your new dashboard!");
        } else {
            System.out.println("Invalid format. Try Again.");
        }
    }
}

错误是

Exception in thread "main" java.util.InputMismatchException
 at java.base/java.util.Scanner.throwFor(Scanner.java:943)
 at java.base/java.util.Scanner.next(Scanner.java:1598)
 at java.base/java.util.Scanner.nextInt(Scanner.java:2263)
 at java.base/java.util.Scanner.nextInt(Scanner.java:2217)
 at com.mycompany.studentnumber.StudentNumber.main(StudentNumber.java:21)
ndc85430

你得到的错误是因为你在字符串中有破折号并且你正在调用nextInt. 您需要将输入读取为字符串(使用 eg nextLine),然后将正则表达式应用于该字符串并将部分转换为适当的整数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取文本中带有小数或破折号的数字?

使用Toad 9.5 for Oracle如何对带有破折号的数字字段进行排序

Python argparse:如何引用带有破折号的参数

如何使MVC路由句柄网址带有破折号

如何在 CosmosDB SqlAPI 中查询带有破折号的属性?

在表达中,如何在带有破折号的表单中获取属性名称?

如何在bash脚本中多次使用带有“-”(破折号)的标准输入?

如何在 .NET 6 中使用带有破折号 (-) 的路由器参数?

如何在 azure 搜索中搜索带有中间破折号的术语?

Spring Boot:如何指定一个在application.properties中带有破折号的环境变量?

如何使用RegEx替换Java破折号后的字母?

如何在Java中使用while循环堆叠数字模式?

如何在Java中指定字节文字?

如何扩展给定范围的数字以包括所有由破折号分隔的数字

如何在破折号后删除此字符串中的所有数字?

如何从字符串中删除破折号(-),不包括 Java 中输入字母数字字符串中的数字

java - 如何使用正则表达式从字符串中删除破折号(-),除了java中的数字和单词之间?

我如何通过弹性搜索来搜索其中带有“-”破折号的值

当模块名称中带有'-'破折号或连字符时,如何导入模块?

如何对带有破折号或连字符的文件或目录执行操作?

如何使用React Native CSS实现带有2个图标的破折号

在JavaScript中如何处理带有破折号的ID?(自动创建全局变量)

如何响应性地使带有破折号的单词转到下一行而不是中断?

如何解析带有多个下划线和破折号的字符串

如何使用多行正则表达式将模式与数字或数字和单破折号相匹配

java中如何验证一个字符串只包含字母、数字、下划线和破折号

如何在数字KeyboardType中隐藏点和破折号

如何在数字和文本Javascript之间插入破折号

Circe-Optics如何用破折号指定路径