解释一下,可能大家觉得转盲文很搞笑,盲人又看不见。确实,单纯就转盲文确实没意义,但是后续会准备一台盲文打印机配合使用!过几天也会更新中文转盲文。

我深知还有程序还有许多不完善的地方,会一步步完善的。

英文转盲文主要是利用ASCII码对照表

先理清思路:

1.首先思考改如何把盲文表示出来。

2.由于英文盲文不区分大小写,需把所有字母转换为大写。

3.怎么定义字母与盲文之间的关系。

理清思路后一个个解决。

解决问题:

1.首先思考改如何把盲文表示出来。

不管哪种盲文,都是由六个点,共三行组成。方便表示就用6位二进制,逗号表示换行。0表示那个点没有,1表示有。

如:

A的盲文是,表示为 10,00,00

H的盲文是,表示为 10,11,00

2.由于英文盲文不区分大小写,需把所有字母转换为大写。

java使用toUpperCase()方法可以把字符串中的所有字母转为大写。

然后使用 toCharArray() 方法把字符串转化为一个字符数组。

3.怎么定义字母与盲文之间的关系。

这里使用了枚举法,使用比较方便,也比较好看。

如下:

package tobraille1.enums;/*** 枚举出26个字母的盲文*/
public enum BrailleEnum {A("10,00,00"),B("10,10,00"),C("11,00,00"),D("11,01,00"),E("10,01,00"),F("11,10,00"),G("11,11,00"),H("10,11,00"),I("00,11,00"),J("01,11,00"),K("10,00,10"),L("10,10,10"),M("11,00,10"),N("11,01,10"),O("10,01,10"),P("11,10,10"),Q("11,11,10"),R("10,11,10"),S("01,10,10"),T("01,11,10"),U("10,00,11"),V("10,10,11"),W("01,11,01"),X("11,00,11"),Y("11,01,11"),Z("10,01,11");private String braille;BrailleEnum(String braille) {this.braille = braille;}public String getBraille() {return braille;}public void setBraille(String ASCII) {this.braille = ASCII;}
}

随便简单介绍一下枚举类。

1.在创建enum类的时候,Java就默认这个类继承了enum,所以enum类是无法再继承其他类。

2.在enum类中,创建的实例必须放在类的最上面,多个实例用逗号隔开,如果实例化常量没有初始化,系统会默认提供一个无参的构造方法

3.如果实例初始化了,就必须创建带有对应参数的构造函数。

4、如果枚举类中有抽象方法,注意抽象方法要放在实例的后面。则每个实例都需要实现枚举类中的这个抽象方法。

public enum Season {

SPING("春天"){
        @Override public String doPlay() {
            return "春天";
        }
    },

SUMMMER("夏天"){
        @Override public String doPlay() {
            return "夏天";
        }
    },

FALL("秋天"){
        @Override public String doPlay() {
            return "秋天";
        }
    }, WINTER("冬天"){
        @Override public String doPlay() {
            return "冬天";
        }
    };

private final String seansonName;

Season(String seansonName) {
        this.seansonName = seansonName;
    }

public abstract String doPlay();
}

最后附上英文转盲文的源码:

package tobraille1.service.serviceImpl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import tobraille1.POJO.EnASCIIToBraille;
import tobraille1.POJO.ToBrailleMsg;
import tobraille1.common.R;
import tobraille1.dao.ToBrailleMsgDao;
import tobraille1.enums.BrailleEnum;import java.util.Map;@Service
public class ToBrailleImpl extends ServiceImpl<ToBrailleMsgDao, ToBrailleMsg> {public static R<String> toBraille(ToBrailleMsg brailleMessage) {try {//英文翻译盲文if ("en-us".equals(brailleMessage.getLanguage())) {String upperCase = brailleMessage.getText().toUpperCase();char[] chars = upperCase.toCharArray();String[] s = new String[chars.length];int i = 0;for (char c : chars) {s[i] = BrailleEnum.valueOf(String.valueOf(c)).getBraille();System.out.println(s[i]);i++;}return R.success(s);}//中文翻译盲文else {return R.success("");}} catch (Exception e) {e.printStackTrace();return R.error("出现错误,翻译失败");}}public static void main(String[] args) {ToBrailleMsg toBrailleMsg = new ToBrailleMsg();toBrailleMsg.setLanguage("en-us");toBrailleMsg.setText("hello");toBraille(toBrailleMsg);}
}

运行结果。

使用枚举实现英文转盲文相关推荐

  1. 中的枚举属性函数_Java 枚举:有效应用

    Java 枚举本身的介绍本文就不多说,相关资料很多,本文将讲述些 Java 枚举使用的技巧和注意事项. 枚举属性 Java 枚举除了可以定义常量以外,还可以定义属性.比如很常见的一个星期枚举 publ ...

  2. java:枚举类使用

    文章目录 Java枚举详解 基本介绍 如何定义枚举类 1.自定义实现枚举类 2.使用enum关键字创建枚举类 Enum类的常用方法 枚举类实现接口 Java枚举详解 基本介绍 枚举对应英文(enume ...

  3. 【Java】枚举类基本使用

    文章目录 1. 先看一个需求 2. 分析问题 3. 解决方案-枚举 4. 枚举的两种种实现方式 4.1 自定义类实现枚举-应用案例 4.2 自定义类实现枚举--小结 4.3 enum 关键字实现枚举- ...

  4. JAVA笔记(十五):枚举类、注解、异常

    枚举类Enumeration 1)枚举对应英文(enumeration,简写enum) 2)枚举是一组常量的集合 3)可以理解为:枚举属于一种特殊的类,里面只包含一组 有限的 特定的 对象 1.自定义 ...

  5. 铁路基因的传承与创新

    当你来到"形隐于山"的八达岭长城站,置身于地下102米深的高铁站:当你便捷地刷脸进站.接受机器人的引领服务:当你在站台上看到新老京张文化墙遥相致敬:当你乘坐长84米.提升高度42米 ...

  6. crypto密码总结

    base64编码:字母A-Z.a-z.数字0-9 base32编码:大写字母(A-Z)和数字234567 base16编码:数字0-9以及大写字母ABCDEF base91编码: 例:@iH<, ...

  7. Java高级编程学习

    1.9日学习笔记 类变量/静态变量 (jdk8以后,静态变量存放在堆里这个类对应的class对象最后,jdk8以前,静态变量存放在方法区) 类变量也叫静态变量/属性,是该类所有对象共享的变量,任何一个 ...

  8. 《C语言入门指南》合集版,学习c语言有这一篇就够了?

    前言: <C语言入门指南>,全文分为3篇,共计34248字,此为合集版,适用初学者入门C语言,非初学者也可以通过本文复习C语言相关知识点,强化记忆!十三肝7天才弄完,贼累了,发布这篇笔记也 ...

  9. java笔记1/3 (B站hsp学java)

    JAVA基础 文章目录 JAVA基础 变量 整形(INT) 浮点型(float/double) 字符型(char) 布尔类型(boolean) 基础数据类型的转换 自动类型转换 强制类型转换 重载 可 ...

  10. CTF常见密码编码合集

    ASCII编码 简述:使用制定的7位或8位二进制数组合来表示128或256种可能的字符.使用7位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0到9.标点符号,以及在美式英语中使用的 ...

最新文章

  1. 火爆股市的元宇宙,究竟关VR/AR什么事?
  2. WRF-Chem User Guide3.9.1.1 部分内容翻译
  3. CentOS 6 nginx(Tengine2.1.2)源码编译一键部署脚本
  4. leetcode 调整数组顺序使奇数位于偶数前面
  5. Hangfire使用ApplicationInsigts监控
  6. 图解分布式架构的发展和演进 | 技术干货
  7. android 6.0 ndk版本,[推荐]android-ndk6.0翻译(1)
  8. projectwbs表_从Project 2007导出WBS图表到Visio 2007
  9. GAN在SAR图像仿真中的应用
  10. 好友返利网站开发 二
  11. Python+pyecharts研究周杰伦歌词中的 秘密
  12. 【明日方舟 人工智能】在罗德岛学习人工智能的日子 (一)
  13. 求职面试找工作时,你遇到的奇葩问题?
  14. WPF 定义自己的控件
  15. Twin Builder—系统级多物理域数字孪生平台
  16. matlab只读改为可修改,matlab – 获取绘图的只读属性名称列表
  17. netterm linux,NetTerm终端仿真软件下载
  18. 在线公开课 | 教你如何自行搭建一个威胁感知大脑?
  19. c语言char*word,c char* 转dword
  20. 设置代理后打开应用老是弹出提示框要输入用户名和密码的问题。

热门文章

  1. ​最强全集,数据科学领域,那些你不能不知道的大咖们!
  2. process launch failed: timed out waiting for app to launch问题解决
  3. WiFi探针的原理与安全
  4. 功率曲线k值_一种基于DTW的改进K-means的日负荷曲线聚类方法技术
  5. 依图科技:多个人工智能应用领域达到全球领先水平 | 百万人学AI评选
  6. linux 的压缩文件格式,常见压缩文件的格式及linux中打包或解压的方法
  7. 后端都需要学习什么?
  8. U8g2 图形库必备!试试这几个即时生效的界面工具
  9. PHP微信怎么计步数,微信运动怎么关注好友步数(微信运动计步功能使用方法介绍)...
  10. 北斗产业有哪些“芯”优势