来自华为


请您编写一个拼音与英文转换的函数,如果输入的电话号码是英文单词,输出对应的电话号码的中文拼音,如果输入的电话号码是中文拼音,输出对应的电话号码的英文单词。例如,输入“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();}}

编程测试题-电话号码的英文表示和中文表示转换相关推荐

  1. 快速理解编程结构_为什么系统编程全都用英文而不用中文?听完专家的解释恍然大悟!...

    全球博弈(quanqiuboyi)--不一样的观点,不一样的解读,8000万人订阅的超级微信大号.不关注时事,你将会被这个世界抛弃,点击标题下蓝字"全球博弈"关注,我们将为您提供有 ...

  2. python将英文翻译为中文_Python使用百度翻译开发平台实现英文翻译为中文功能示例...

    本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能.分享给大家供大家参考,具体如下: #coding=utf8 import random import requests impor ...

  3. python翻译器怎么用_Python使用百度翻译开发平台实现英文翻译为中文功能示例

    本文实例讲述了Python使用百度翻译开发平台实现英文翻译为中文功能.分享给大家供大家参考,具体如下: #coding=utf8 import random import requests impor ...

  4. vscode设置将英文界面设置为中文?

    如果您希望将 Visual Studio Code(以下简称VSCode)的界面从英文设置为中文,可以按照以下步骤进行: 打开 VSCode 编辑器,并进入"扩展"菜单. 在搜索框 ...

  5. DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练、测试(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录

    DL之Attention-ED:基于TF NMT利用带有Attention的 ED模型训练(中英文平行语料库)实现将英文翻译为中文的LSTM翻译模型过程全记录 目录 测试输出结果 模型监控 训练过程全 ...

  6. Linux常用命令英文全称与中文解释Linux系统

    Linux常用命令英文全称与中文解释Linux系统 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 意思是密码. su: ...

  7. 中文字号转换成英文的字号

    中文字号转换成英文的字号 中文字号 英文字号(pt) 初号  |  42 ---------------- 小初  |  36 ---------------- 1号   |  26 -------- ...

  8. linux 编译报错 not a directory,Linux常见英文报错中文翻译

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

  9. Linux常见英文报错中文翻译(菜鸟必知)

    Linux常见英文报错中文翻译(菜鸟必知) 1.command not found 命令没有找到 2.No such file or directory 没有这个文件或目录 3.Permission ...

最新文章

  1. Nat Commun:宏基因组学提示曙古菌门的代谢和进化(中大李文均组)
  2. JSP实现大学生综合素质测评系统
  3. 操作MySQL数据库
  4. 一、Django前后端交互之Ajax和跨域问题
  5. 关于Netty的ByteBuff内存泄漏问题
  6. Python3.x和Python2.x的区别[转]
  7. elementui table渲染不出来_测试开发不会前端?ElementUI你需要了解一下
  8. 迭代器 java_Java设计模式8:迭代器模式
  9. python-基本装饰器
  10. 逛画展(单调队列) acm寒假集训日记22/1/1
  11. java 重定向到某个页面并弹出消息_前端面试100问之浏览器从输入URL到页面展示发生了什么...
  12. 剑指offer面试题16. 数值的整数次方(二分法)
  13. python自学视频教程 38-自学 Python,视频教程和代码一看就懂,动手就废,应该这么学...
  14. 数据结构和算法——八种常用的排序算法------基数排序
  15. AJAX技术开发Back按钮问题的应用程序
  16. 秋叶一键重装系统连接服务器失败,小熊教你如何解决一键重装系统失败问题
  17. ICCV2019论文题目中文列表
  18. Lenovo R7000 win11无线网卡无法连接5Gwifi
  19. 计算机显示另外一个用户登录,电脑两个用户怎么在欢迎界面只显示一个?
  20. NoSQL 数据库和传统关系型数据库到底有什么区别?

热门文章

  1. CSS 子级元素固定在父级元素底部 - css
  2. 使用canvas绘制六边形
  3. 杰力科创单键奶泡机芯片——DLTAP703SC
  4. TIA博途SCL编程学习22_奖金计算
  5. 在mac中使用numbers对数据进行分列
  6. 小红书编辑器_小红书X新榜小红书2020年10月创作者红人榜重磅发布
  7. 凯悦推出全新酒店品牌Caption by Hyatt
  8. 计算机操作指令arp,详解在win7电脑中操作ARP命令的详细步骤
  9. 用vue.js实现的网页计算器源码
  10. 15.制作windows 7系统安装U盘