java 摩尔斯电码_使用Java进行摩尔斯电码转换
我正在尝试学习Java中的哈希映射和2D数组.我们有一个任务,因为有一个扫描仪接受一个字符串并将其转换为莫尔斯电码.我们使用的代码基于一个充满if语句的方法,但我想学习如何使用list,hashmaps或2D数组做这样的事情.我的代码如下:
import java.util.*;
public class MorseConversion
{
public static void main(String[] args)
{
Scanner userInput = new Scanner(System.in);
System.out.println("Please enter a phrase to convert to morse code: ");
String userString = userInput.nextLine();
System.out.println("");
System.out.println(stringConvert(userString));
}
public static String stringConvert(String userString)
{
String currentChar;
String getMorseChar;
String convertedString = "";
for (int i = 0; i < userString.length(); i++)
{
//Get character at i position
currentChar = userString.charAt(i) + "";
//convert character to morse code
getMorseChar = convert(currentChar);
//seperate words with the | symbol
if (getMorseChar.equals(" "))
{
convertedString = convertedString + " | ";
}
else
{
//concat the converted letter
convertedString = convertedString + getMorseChar;
//Add a space between each letter
if (!getMorseChar.equals(" "))
{
convertedString = convertedString + " ";
}
}
}
return convertedString;
}
public static String convert (String toEncode)
{
String morse = toEncode;
if (toEncode.equalsIgnoreCase("a"))
morse = ".-";
if (toEncode.equalsIgnoreCase("b"))
morse = "-...";
if (toEncode.equalsIgnoreCase("c"))
morse = "-.-.";
if (toEncode.equalsIgnoreCase("d"))
morse = "-..";
if (toEncode.equalsIgnoreCase("e"))
morse = ".";
if (toEncode.equalsIgnoreCase("f"))
morse = "..-.";
if (toEncode.equalsIgnoreCase("g"))
morse = "--.";
if (toEncode.equalsIgnoreCase("h"))
morse = "....";
if (toEncode.equalsIgnoreCase("i"))
morse = "..";
if (toEncode.equalsIgnoreCase("j"))
morse = ".---";
if (toEncode.equalsIgnoreCase("k"))
morse = "-.-";
if (toEncode.equalsIgnoreCase("l"))
morse = ".-..";
if (toEncode.equalsIgnoreCase("m"))
morse = "--";
if (toEncode.equalsIgnoreCase("n"))
morse = "-.";
if (toEncode.equalsIgnoreCase("o"))
morse = "---";
if (toEncode.equalsIgnoreCase("p"))
morse = ".--.";
if (toEncode.equalsIgnoreCase("q"))
morse = "--.-";
if (toEncode.equalsIgnoreCase("r"))
morse = ".-.";
if (toEncode.equalsIgnoreCase("s"))
morse = "...";
if (toEncode.equalsIgnoreCase("t"))
morse = "-";
if (toEncode.equalsIgnoreCase("u"))
morse = "..-";
if (toEncode.equalsIgnoreCase("v"))
morse = "...-";
if (toEncode.equalsIgnoreCase("w"))
morse = ".--";
if (toEncode.equalsIgnoreCase("x"))
morse = "-..-";
if (toEncode.equalsIgnoreCase("y"))
morse = "-.--";
if (toEncode.equalsIgnoreCase("z"))
morse = "--..";
if (toEncode.equalsIgnoreCase("0"))
morse = "-----";
if (toEncode.equalsIgnoreCase("1"))
morse = ".----";
if (toEncode.equalsIgnoreCase("2"))
morse = "..---";
if (toEncode.equalsIgnoreCase("3"))
morse = "...--";
if (toEncode.equalsIgnoreCase("4"))
morse = "....-";
if (toEncode.equalsIgnoreCase("5"))
morse = ".....";
if (toEncode.equalsIgnoreCase("6"))
morse = "-....";
if (toEncode.equalsIgnoreCase("7"))
morse = "--...";
if (toEncode.equalsIgnoreCase("8"))
morse = "---..";
if (toEncode.equalsIgnoreCase("9"))
morse = "----.";
if (toEncode.equalsIgnoreCase("."))
morse = ".-.-";
if (toEncode.equalsIgnoreCase(","))
morse = "--..--";
if (toEncode.equalsIgnoreCase("?"))
morse = "..--..";
return morse;
}
}
我出于好奇而严格地这样做.我已经把它砸到了我的脑海里,像这样的冗余是一个巨大的禁忌.提前致谢!
解决方法:
更简单的方法是使用初始化程序,使用字母作为键将字符加载到哈希映射中.然后,当您循环输入字符串中的字符时,您只需执行操作即可
在课程开始时做这样的事情:
private static HashMap codes = new HashMap();
static{
codes.put("a", ".-");
codes.put("b", "-...");
bla bla bla
}
然后在你的循环中
//convert character to morse code
getMorseChar = convert(currentChar);
你将会拥有
getMorseChar = code.get(currentChar.toLowerCase());
没有更讨厌的elseif声明.
标签:java,list,hashmap,encode
来源: https://codeday.me/bug/20190901/1781422.html
java 摩尔斯电码_使用Java进行摩尔斯电码转换相关推荐
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java是什么格式_是java格式
错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...
- java ee开发环境_设置Java EE 6开发环境
java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...
- JAVA redis缓存过期_失效java服务器
Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...
- java 字符串输出字符_输出java字符串
1-1 字符串排序 用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入 3 Abc Abe Abd 输出: Abc Abd Abe ...
- 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...
广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少 首页 > java > 广东java工资待遇 作者:镀金池 发布时间:2018-12-22 11:20 在 ...
- java pdf插件下载_免费java pdf控件
云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?
二.XML文件 三.开始解析 public class JDOMTest { public static void main(String[] args) { // 进行对books.xml文件的JD ...
- java 是否含有日文_《JAVA编程思想》5分钟速成:第9章(接口)
第9章 接口 前言: 1.抽象类(abstract class)和接口(interface)有什么异同? 2.抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(n ...
最新文章
- Java8的集合:ArrayList的实现原理
- linux自定义全局命令
- url采集工具_爬山虎采集实战-站长之家网站排行榜
- 企业邮箱提升企业效率
- matlab编程计算正态分布,MATLAB如何使用normpdf函数计算正态分布的概率密度
- oracle报1405,【案例】Oracle报错ORA-15054 asm diskgroup无法mount的解决办法
- Arduino - 改造楼道门禁,使用密码开门
- 一文了解CDN加速服务
- android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
- 亚马逊全球开店卖家峰会昨日举行,内附2018亚马逊开店入驻通道
- 2023年软考中级网络工程师考试大纲
- 了解TTL、COMS电平
- 自己做h5页面点击元素块的时候会出现黑色阴影
- Android国际化,阿语RTL适配总结
- python按设定比例划分训练集和测试集代码
- 【Linux】中root就是万能的吗?
- 行业案例 | 汽车售后服务升级,AR 应用成为差异化优势
- 使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包
- C语言:9.5 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均分成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
- STM32G070RBT6基于Arduino框架GPIO外部中断
热门文章
- 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...
- (PKCS1) RSA 公私钥 pem 文件 提取 公私钥 e d 和 模数 n
- linux操作系统相关常用问题总结
- js实现鼠标点击自动选中点击元素内的文字
- LabVIEW使用G#框架实现面向对象编程
- 退休当月要干到月底吗_法律规定退休人员上班到退休当日还是当月
- 分享国外电商网站的七大时尚设计元素
- vi 遇到乱码问题——解决记录
- 最新CSGO国服能取回皮肤的国内开箱网站推荐大全
- Failed to load project configuration:xxx cannot read file .idea/misc.xml