gpt4 book ai didi

java - 电话号码分割(国际版)java

转载 作者:行者123 更新时间:2023-12-01 18:36:46 27 4
gpt4 key购买 nike

给定一个代表 11 位电话号码的长整数,使用 +1 (800) 555-1212 格式输出国家/地区代码、区号、前缀和线路号码。

例如:如果输入是:18005551212

输出是:

+1 (800) 555-1212

到目前为止,

import java.util.Scanner;

public class LabProgram {

public static void main(String[] args) {

Scanner scnr = new Scanner(System.in);
long phoneNumber;
int countryCode, area_Code, prefix, line_Number;

phoneNumber = scnr.nextLong();

/* Type your code here. */
line_Number = (int)(phoneNumber%10000);
countryCode = (int)(phoneNumber%100/10);
area_Code = (int)(phoneNumber/10000/1000);



System.out.println("(" + area_Code + ") ");
}

我正在运行程序只是为了看看我想如何处理剩下的事情。

我有一个问题。运行后,如何去掉area_Code中的1?

看起来像这样(1800),我想把1放在括号外面。

请帮忙,还是个新手。

最佳答案

不清楚为什么您将输入解析为long,我会坚持使用String作为输入(如果您为了安全起见,也许删除所有非数字并验证它实际上是十一个字符长)。比如,

String phoneNumber = scnr.nextLine().replaceAll("\\D+", "");
if (phoneNumber.length() == 11) {
System.out.printf("+1 (%s) %s-%s%n", phoneNumber.substring(1, 4),
phoneNumber.substring(4, 7), phoneNumber.substring(7));
}

根据您的示例输入,我得到(根据要求)

+1 (800) 555-1212

或者,

int lineNumber = (int) (phoneNumber % 10000);
int areaCode = (int) (phoneNumber / 10000 / 1000) - 1000;
int coCode = (int) (phoneNumber / 10000) - (areaCode * 1000) - 1000000;
System.out.printf("+1 (%d) %d-%d%n", areaCode, coCode, lineNumber);

System.out.print("+1 (");
System.out.print(areaCode);
System.out.print(") ");
System.out.print(coCode);
System.out.print("-");
System.out.println(lineNumber);

关于java - 电话号码分割(国际版)java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60022025/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com