java - 电话号码细分(国际版)java
问题描述
给定一个表示 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 放在括号外。
请任何帮助,仍然是新手。
解决方案
目前尚不清楚您为什么要将输入解析为 a long
,我会坚持使用String
for input (如果您想安全起见,可能会删除所有非数字并验证它实际上是 11 个字符长)。就像是,
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);
推荐阅读
- corpus - 带有循环的 textstat_simil 中的唯一元素列表
- django - Django 动态过滤 ListView 返回错误:get() 为参数“self”获取了多个值
- node.js - 对于内容安全问题,我的条带没有运行
- javascript - 从一个 HTML 页面到另一个 HTML 页面的数据传输
- java - CDK ECR:如何设置存储库名称和标签
- python - PytestCollectionWarning:无法收集测试类“Test_001_Login”,因为它有一个 __init__ 构造函数
- c# - 如何查询多个json节点?
- powershell - Powershell 并行处理:如何在全局变量中设置值
- facebook-graph-api - 如何翻译组的提要?在 Workplace Graph API 中
- python - Python二分查找解决不了