编程测试题-电话号码的英文表示和中文表示转换
来自华为
请您编写一个拼音与英文转换的函数,如果输入的电话号码是英文单词,输出对应的电话号码的中文拼音,如果输入的电话号码是中文拼音,输出对应的电话号码的英文单词。例如,输入“OneZeroDoubleThree”,则输出YiLingSanSan。拼音、英文读法见下表:
Yi Er San Si Wu Liu Qi Ba Jiu Ling
One Two Three Four Five Six Seven Eight Nine Zero
注意:
1、 每个单词均为首字母大写,遇到连续两个相同数字,输入可以前面加Double,输出不可以加Double。
输入描述:
由首字母大写组成的字符串,表示一个电话号码的英文单词或者中文读法。字符输入范围为数字 0、1、2、3、4、5、6、7、8、9的英文单词或者中文拼音。
输出描述:
输出:
根据输入的,输出对应的电话号码字符串。如果输入的电话号码是英文单词,输出对应的电话号码的中文拼音;如果输入的电话号码是中文拼音,输出对应的电话号码的英文单词。若输入非法,输出字符串“ERROR”。
注意:最终交付的函数代码中不要向控制台打印输出无关任何信息。
示例1
输入
OneTwoThreeFourFiveSixSevenEightNineZero
输出
YiErSanSiWuLiuQiBaJiuLing
收起答题卡
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;public class ChineseToEnglish {public static void main(String[] args) {
// String str1 = "Ling Yi Er San";
// String str2 ="Zero One Two Three";
// String[] chi = {"Ling", "One", "Er", "San", "Si", "Wu", "Liu", "Qi", "Ba", "Jiu"};
// String[] eng = {"One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};Scanner input = new Scanner(System.in);String src = ""; String target = "";while(input.hasNextLine()){src = input.nextLine();target = translate(src);}}public static String translate(String str){String[] chi = {"Ling", "Yi", "Er", "San", "Si", "Wu", "Liu", "Qi", "Ba", "Jiu"};String[] eng = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};Map<String, Integer> chiMap = new HashMap<String, Integer>();Map<String, Integer> engMap = new HashMap<String, Integer>();int flag =-1; String[] des = new String[str.length()];for(int i = 0; i<chi.length; i++){chiMap.put(chi[i], i);engMap.put(eng[i], i);}if("".equals(str)||str==null||str.isEmpty()){System.out.println("ERROR");return "";}for(int i = 0 ; i<str.length(); i++){if(" ".equals(str.charAt(i))||"".equals(str.charAt(i))){System.out.println("ERROR");return "";}}String[] src = str.split(" ");if(chiMap.keySet().contains(src[0])){flag = 0;//Ping Yin}else{flag = 1;//English}if(flag == 1){for(int i = 0; i<src.length; i++){if("Double".equals(src[i]))src[i] = src[i+1];}for(int i = 0; i<src.length; i++){int idx = engMap.get(src[i]);des[i] = chi[idx];}}else{for(int i = 0; i<src.length; i++){int index = chiMap.get(src[i]);des[i] = eng[index];}}//String[] des;List<String> target = new ArrayList<String>();StringBuffer sb = new StringBuffer();for(int i = 0 ; i< des.length; i++){if(des[i]!=null)//target.add(des[i]);sb.append(des[i]);}System.out.println(sb.toString());//System.out.println(Arrays.toString(target.toArray()));System.out.println(sb);return sb.toString();}}
编程测试题-电话号码的英文表示和中文表示转换相关推荐
- 快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...
全球博弈(quanqiuboyi)--不一样的观点,不一样的解读,8000万人订阅的超级微信大号.不关注时事,你将会被这个世界抛弃,点击标题下蓝字"全球博弈"关注,我们将为您提供有 ...
- python将英文翻译为中文_Python使用百度翻译开发平台实现英文翻译为中文功能示例...
本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能.分享给大家供大家参考,具体如下: #coding=utf8 import random import requests impor ...
- python翻译器怎么用_Python使用百度翻译开发平台实现英文翻译为中文功能示例
本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能.分享给大家供大家参考,具体如下: #coding=utf8 import random import requests impor ...
- vscode设置将英文界面设置为中文?
如果您希望将 Visual Studio Code(以下简称VSCode)的界面从英文设置为中文,可以按照以下步骤进行: 打开 VSCode 编辑器,并进入"扩展"菜单. 在搜索框 ...
- DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录
DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录 目录 测试输出结果 模型监控 训练过程全 ...
- Linux常用命令英文全称与中文解释Linux系统
Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 意思是密码. su: ...
- 中文字号转换成英文的字号
中文字号转换成英文的字号 中文字号 英文字号(pt) 初号 | 42 ---------------- 小初 | 36 ---------------- 1号 | 26 -------- ...
- linux 编译报错 not a directory,Linux常见英文报错中文翻译
Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...
- Linux常见英文报错中文翻译(菜鸟必知)
Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...
最新文章
- Nat Commun:宏基因组学提示曙古菌门的代谢和进化(中大李文均组)
- JSP实现大学生综合素质测评系统
- 操作MySQL数据库
- 一、Django前后端交互之Ajax和跨域问题
- 关于Netty的ByteBuff内存泄漏问题
- Python3.x和Python2.x的区别[转]
- elementui table渲染不出来_测试开发不会前端?ElementUI你需要了解一下
- 迭代器 java_Java设计模式8:迭代器模式
- python-基本装饰器
- 逛画展(单调队列) acm寒假集训日记22/1/1
- java 重定向到某个页面并弹出消息_前端面试100问之浏览器从输入URL到页面展示发生了什么...
- 剑指offer面试题16. 数值的整数次方(二分法)
- python自学视频教程 38-自学 Python,视频教程和代码一看就懂,动手就废,应该这么学...
- 数据结构和算法——八种常用的排序算法------基数排序
- AJAX技术开发Back按钮问题的应用程序
- 秋叶一键重装系统连接服务器失败,小熊教你如何解决一键重装系统失败问题
- ICCV2019论文题目中文列表
- Lenovo R7000 win11无线网卡无法连接5Gwifi
- 计算机显示另外一个用户登录,电脑两个用户怎么在欢迎界面只显示一个?
- NoSQL 数据库和传统关系型数据库到底有什么区别?