当前位置: 首页 > article >正文

编程题:电话号码

                                                                                             

                                   📑打牌 : da pai ge的个人主页
                                   🌤️个人专栏 : da pai ge的博客专栏
                                   ☁️宝剑锋从磨砺出,梅花香自苦寒来

 📑题目解析

这个题目比较简单 . 借助 hash 表完成字母和数字之间的转换即可 . 注意大小写的情况

🌤️解题思路

1. 先用 hash 表存储字母和数字之间的映射关系
2. 每次读到一个字符 , hash 表中查找 , 并进行处理即可 .

☁️代码解析

import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws Exception
{
//建立映射
//字母--->数字
HashMap<Character, Character> mp = new HashMap<>();
String alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String num = "22233344455566677778889999";
char[] alphaArr = alpha.toCharArray();
char[] numArr = num.toCharArray();
for(int i = 0; i < alphaArr.length; ++i)
{
mp.put(alphaArr[i], numArr[i]);
}
//用set保存结果,去重
TreeSet<String> set = new TreeSet<>();
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while((line = reader.readLine()) != null)
{
set.clear();

int n = Integer.parseInt(line);
//处理n个字符串
for(int i = 0; i < n; ++i)
{
line = reader.readLine();
//保存转换之后的字符串
StringBuilder sb = new StringBuilder();
char[] arr = line.toCharArray();
//处理每一个字符
for(char ch : arr)
{
if(isDigit(ch))
sb.append(ch);
else if(isUpper(ch))
sb.append(mp.get(ch));
}
//调整格式:xxx-xxxx
line = sb.substring(0, 3) + "-" + sb.substring(3);
//保存结果
set.add(line);
}
//打印转换之后的结果
for(String str : set)
System.out.println(str);
//每组数据用空行隔开
System.out.println();
}
}
public static boolean isDigit(char ch)
{
return '0' <= ch && ch <= '9';
}
public static boolean isUpper(char ch)
{
return 'A' <= ch && ch <= 'Z';
}


http://www.kler.cn/news/156440.html

相关文章:

  • 深入理解GMP模型
  • yum方式安装Mariadb多主集群安装和配置-centos9stream-mariadb10.5.16(实战建议配置)
  • java面向对象 + 内存解析
  • YOLOv8改进 | 2023 | 通过RFAConv重塑空间注意力(深度学习的前沿突破)
  • 【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1(亲测无问题,建议收藏)
  • 树莓派使用Nginx+cpolar内网穿透实现无公网IP访问内网本地站点
  • 【从删库到跑路 | MySQL总结篇】事务详细介绍
  • GO基础之基本数据类型
  • ArcGIS提示当前许可不支持影像服务器
  • 【Linux | 编程实践】防火墙 (网络无法访问)解决方案 Vim常用快捷键命令
  • Scala--1
  • vue.draggable拖拽——岗位切换如何判断?
  • Kubernetes(K8s)_15_CNI
  • linux 内核对象介绍
  • Python的模块与库,及if __name__ == ‘__main__语句【侯小啾python领航班系列(二十四)】
  • SimCSE论文阅读
  • 2023年年末Java面试题
  • Spring Task 定时任务框架
  • read()之后操作系统都干了什么
  • 自动驾驶学习笔记(十四)——感知算法
  • Ai2 Starter模拟器:中文绿色最新版下载及使用方法
  • Pytorch进阶教学——训练一个图像分类模型(GPU)
  • 【开源】基于Vue.js的假日旅社管理系统
  • Python词频统计(数据整理)
  • 【开源】基于JAVA语言的APK检测管理系统
  • 2024年甘肃省职业院校技能大赛(中职教师组)网络安全竞赛样题卷④
  • h5进行svga动画礼物特效播放的代码实现队列按顺序播放
  • 终端安全管理软件是监控软件吗
  • Cesium 展示——新增需求和分析
  • 2023年关于爬取Bilibili(B站)视频的一些最新资源和案例