【问题标题】:Separating Digits from a Phone Number从电话号码中分离数字
【发布时间】:2013-09-18 05:19:01
【问题描述】:

我的 AP Java 类有一个我无法解决的问题。这里是:

把电话号码分开

编写一个程序: 提示用户 他们的电话号码(没有破折号),显示电话号码,区域 代码、中间三位、后四位。

请记住,整数的最大允许值为 2,147,483,647,所以你不能做 262 号码

这是我的代码:

import java.util.Scanner;
public class PhoneNumber
{

    public static void main(String[] args)
    {
        Scanner input = new Scanner( System.in );

        System.out.println("Enter your phone number");
        int number = input.nextInt(); 

        int digit1 = number / 10000000000;  
        digit1 = digit1 % 1000000000;
        int digit2 = number / 10000000000;
        digit2 = digit2 % 1000000000;
        int digit3 = number / 10000000000;
        digit3 = digit3 % 1000000000;
        int digit4 = number / 1000000000;
        digit4 = digit4 % 1000000000;
        int digit5 = number / 10000000000;
        digit5 = digit5 % 1000000000;
        int digit6 = number / 1000000000;
        digit6 = digit6 % 100000000;
        int digit7 = number / 100000000;
        digit7 = digit7 % 10000000;
        int digit8 = number / 100000000;
        digit8 = digit8 % 10000000;
        int digit9 = number / 10000000;
        digit9 = digit9 % 1000000;
        int digit10 = number / 1000000;
        digit10 = digit10 % 100000;


        System.out.println("Phone number = " + number);
        System.out.println("Area code = " + digit1 + digit2 + digit3);
        System.out.println("Middle digits = " + digit4 + digit5 + digit6);
        System.out.println("Last four digits = " + digit7 + digit8 + digit9);       

    }

}

这是我得到的错误: int 类型的字面量 10000000000 超出范围

谁能帮我解决这个问题?提前致谢! :)

【问题讨论】:

  • "记住,整数的最大允许值为 2,147,483,647"
  • 我会看看 BigInteger 类或使用 long 数据类型
  • 愚蠢的问题:为什么不将单个“数字”添加到字符串中?

标签: java


【解决方案1】:

您可以尝试使用 long long 类型,因为它是 64 位整数。 好吧,如果有必要在简单地使用BigInteger 或其他用户所说的使用strings 的java 中执行此操作。

【讨论】:

    【解决方案2】:

    使用

    Integer.toString()
    并从那里开始操作。 :)

    此外,请不要在现实生活场景中将电话号码存储在整数字段中。字符串更合适,因为电话号码可能会变得很长,而且有时合法地可以包含非数字字符。

    【讨论】:

      【解决方案3】:

      只需将您的电话号码转换为字符串类型。使用 substring 方法获取您的区号和其他部分。将它们转换回整数。您不必为此创建这么多 int 变量。

      【讨论】:

        【解决方案4】:

        你可以这样用 long 代替

        import java.util.Scanner; public class PhoneNumber {
        
        public static void main(String[] args)
        {
            Scanner input = new Scanner( System.in );
        
            System.out.println("Enter your phone number");
            int number = input.nextInt(); 
        
            long digit1 = number / 10000000000L;  
            digit1 = digit1 % 1000000000;
            long digit2 = number / 10000000000L;
            digit2 = digit2 % 1000000000;
            long digit3 = number / 10000000000L;
            digit3 = digit3 % 1000000000;
            int digit4 = number / 1000000000;
            digit4 = digit4 % 1000000000;
            long digit5 = number / 10000000000L;
            digit5 = digit5 % 1000000000;
            int digit6 = number / 1000000000;
            digit6 = digit6 % 100000000;
            int digit7 = number / 100000000;
            digit7 = digit7 % 10000000;
            int digit8 = number / 100000000;
            digit8 = digit8 % 10000000;
            int digit9 = number / 10000000;
            digit9 = digit9 % 1000000;
            int digit10 = number / 1000000;
            digit10 = digit10 % 100000;
        
        
            System.out.println("Phone number = " + number);
            System.out.println("Area code = " + digit1 + digit2 + digit3);
            System.out.println("Middle digits = " + digit4 + digit5 + digit6);
            System.out.println("Last four digits = " + digit7 + digit8 + digit9);       
        
        }
        }
        

        【讨论】:

          猜你喜欢
          • 2015-10-05
          • 2018-11-16
          • 1970-01-01
          • 2011-11-02
          • 2016-04-15
          • 1970-01-01
          • 1970-01-01
          • 2012-03-09
          • 1970-01-01
          相关资源
          最近更新 更多