Java 从电话号码中分离数字
我的AP Java类中有一个我无法解决的问题。这是: 把电话号码拆开 编写一个程序:提示用户 他们的电话号码(无破折号),显示电话号码,区域 代码、中间三位数字和最后四位数字Java 从电话号码中分离数字,java,Java,我的AP Java类中有一个我无法解决的问题。这是: 把电话号码拆开 编写一个程序:提示用户 他们的电话号码(无破折号),显示电话号码,区域 代码、中间三位数字和最后四位数字 请记住,整数的最大允许值为 2147483647,所以不能做262号 这是我的代码: import java.util.Scanner; public class PhoneNumber { public static void main(String[] args) { Scanner
请记住,整数的最大允许值为 2147483647,所以不能做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类型的文字1000000000超出范围
有人能帮我修一下吗?提前感谢!:) 只需将您的电话号码转换为字符串类型即可。使用子字符串方法获取您的区号和其他部件。将它们转换回整数。您不必为此创建太多的int变量。您可以尝试使用
long
类型,因为它是64位整数。
如果有必要在java中使用
BigInteger
或其他用户所说的使用strings
来实现这一点,您可以这样使用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);
}
}
使用Integer.toString()并从此处开始操作。:)
此外,在现实生活中,请不要将电话号码存储在整数字段中。字符串更合适,因为电话号码可能会增长很长,有时合法地可以包含非数字字符。“记住,整数的最大允许值是2147483647”我想看看BigInteger类或使用长数据类型愚蠢的问题:为什么不添加单个“数字”成串? Integer.toString()