Java - nextInt() 大小限制

标签 java int java.util.scanner

我通过输入 Scanner class 请求电话号码,我只强制输入号码,但我可能会出错。我需要的是一串整数,而不是一个整数并且比一个整数的大小容量更大的东西。最终,它的长度需要是 7 个整数或 10 个整数,不能介于两者之间或更多或更少,但当然是所有数字而不是字母

System.out.println("What is the  phone number (digits only)?: ");
 while (!Main.scan.hasNextInt()) 
            {
                Main.scan.next();
                System.out.println("What is the  phone number (digits only)?: ");
            }

            int phone_number = Main.scan.nextInt();

Clearfication string of ints - 不是指 ints 数组而是一系列独立的 ints 但当然如果你分配为一个 ints,它无法分辨差异所以你必须使用 long。这就是我要引用的事实,我的电话号码是一系列整数而不是一个整数,所以原始类型对我来说是一半正确一半错误。

解决方案:感谢 Braj !!

    String numbers = Main.scan.next();
        long phone_number = 0 ;

         while (!numbers.matches("(\\d{7}|\\d{10})$"))
         {


             System.out.println("What is the patient's phone number (digits only)?: ");
             numbers = Main.scan.next();
         } 

         phone_number = Long.valueOf(numbers);

最佳答案

电话号码不是整数:987-555-1212 不代表数字九十亿、八亿七千五百万、五十五万一千二百二。这只是一串数字。

电话号码也可以很长(很多位),比如分机号码和特殊拨号代码,甚至可以包含“#”和“*”等符号。

我会将电话号码存储为字符串,并使用代码检查用户的输入是否包含无效字符。

关于Java - nextInt() 大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793389/

相关文章:

java - UML 类图 - 扩展通用抽象类的表示法?

java - 停止缩放 JPanel 的背景图像

java - JSON 只允许一个顶级值?

C:将 int 转换为 String

java - 如何使用 Scanner 处理无效输入(InputMismatchException)引起的无限循环

java.util.NoSuchElementException - 扫描仪读取用户输入

java - 验证文本 Pane 的范围

objective-c - 有什么方法可以为一组连续的整数中的每一个命名?

c# - 在作为参数传递时防止混淆相同基类型的 ID

java - 文本文件中的通用二叉树