我正在尝试学习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进行摩尔斯电码转换相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  3. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  4. JAVA redis缓存过期_失效java服务器

    Java 并发/多线程教程--4并发模型 本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平 ...

  5. java 字符串输出字符_输出java字符串

    1-1 字符串排序 用Java编写一个能对一组字符串按字典序升序排序的程序 输入为N和N行字符串,需要按行输出字符串升序排序的结果 如输入 3 Abc Abe Abd 输出: Abc Abd Abe ...

  6. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...

    广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少 首页 > java > 广东java工资待遇 作者:镀金池   发布时间:2018-12-22 11:20 在 ...

  7. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  8. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  9. java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?

    二.XML文件 三.开始解析 public class JDOMTest { public static void main(String[] args) { // 进行对books.xml文件的JD ...

  10. java 是否含有日文_《JAVA编程思想》5分钟速成:第9章(接口)

    第9章 接口 前言: 1.抽象类(abstract class)和接口(interface)有什么异同? 2.抽象的(abstract)方法是否可同时是静态的(static),是否可同时是本地方法(n ...

最新文章

  1. Java8的集合:ArrayList的实现原理
  2. linux自定义全局命令
  3. url采集工具_爬山虎采集实战-站长之家网站排行榜
  4. 企业邮箱提升企业效率
  5. matlab编程计算正态分布,MATLAB如何使用normpdf函数计算正态分布的概率密度
  6. oracle报1405,【案例】Oracle报错ORA-15054 asm diskgroup无法mount的解决办法
  7. Arduino - 改造楼道门禁,使用密码开门
  8. 一文了解CDN加速服务
  9. android wifi传图片,「教程」将Mac电脑上的照片无线传到安卓手机上
  10. 亚马逊全球开店卖家峰会昨日举行,内附2018亚马逊开店入驻通道
  11. 2023年软考中级网络工程师考试大纲
  12. 了解TTL、COMS电平
  13. 自己做h5页面点击元素块的时候会出现黑色阴影
  14. Android国际化,阿语RTL适配总结
  15. python按设定比例划分训练集和测试集代码
  16. 【Linux】中root就是万能的吗?
  17. 行业案例 | 汽车售后服务升级,AR 应用成为差异化优势
  18. 使用POI,实现excel文件导出,图片url导出文件,图片和excel文件导出压缩包
  19. C语言:9.5 有10个学生,每个学生的数据包括学号、姓名、3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均分成绩,以及最高分的学生的数据(包括学号、姓名、3门课程成绩、平均分数)。
  20. STM32G070RBT6基于Arduino框架GPIO外部中断

热门文章

  1. 论文翻译:2021_语音增强模型压缩_Towards model compression for deep learning based speech enhancement...
  2. (PKCS1) RSA 公私钥 pem 文件 提取 公私钥 e d 和 模数 n
  3. linux操作系统相关常用问题总结
  4. js实现鼠标点击自动选中点击元素内的文字
  5. LabVIEW使用G#框架实现面向对象编程
  6. 退休当月要干到月底吗_法律规定退休人员上班到退休当日还是当月
  7. 分享国外电商网站的七大时尚设计元素
  8. vi 遇到乱码问题——解决记录
  9. 最新CSGO国服能取回皮肤的国内开箱网站推荐大全
  10. Failed to load project configuration:xxx cannot read file .idea/misc.xml