从电话号码中分离数字

时间:2013-09-18 05:19:01

标签: java

我的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超出范围

任何人都可以帮我解决这个问题吗?提前致谢! :)

4 个答案:

答案 0 :(得分:1)

您可以尝试使用long long类型,因为它是64位整数。 好吧,如果有必要在java中那样只使用BigInteger或其他用户说使用strings

答案 1 :(得分:1)

使用

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

你可以像这样长时间使用

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);       

}
}