当前位置:网站首页>使用枚举实现英文转盲文
使用枚举实现英文转盲文
2022-07-07 18:42:00 【No Bug】
解释一下,可能大家觉得转盲文很搞笑,盲人又看不见。确实,单纯就转盲文确实没意义,但是后续会准备一台盲文打印机配合使用!过几天也会更新中文转盲文。
我深知还有程序还有许多不完善的地方,会一步步完善的。
英文转盲文主要是利用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);
}
}
运行结果。

边栏推荐
- 如何满足医疗设备对安全性和保密性的双重需求?
- 寫一下跳錶
- Introduction to referer and referer policy
- Mrs offline data analysis: process OBS data through Flink job
- Measure the height of the building
- 如何挑选基金产品?2022年7月份适合买什么基金?
- Écrivez une liste de sauts
- H3C s7000/s7500e/10500 series post stack BFD detection configuration method
- 阿洛的烦恼
- ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
猜你喜欢

H3C s7000/s7500e/10500 series post stack BFD detection configuration method

Small guide for rapid formation of manipulator (12): inverse kinematics analysis

【论文阅读】MAPS: Multi-agent Reinforcement Learning-based Portfolio Management System

AADL Inspector 故障树安全分析模块

One click deployment of any version of redis

机械臂速成小指南(十一):坐标系的标准命名

Intelligent software analysis platform embold

C语言 整型 和 浮点型 数据在内存中存储详解(内含原码反码补码,大小端存储等详解)

机械臂速成小指南(十二):逆运动学分析

How to meet the dual needs of security and confidentiality of medical devices?
随机推荐
Tensorflow2.x下如何运行1.x的代码
恶魔奶爸 B2 突破语法,完成正统口语练习
Precautions for cjson memory leakage
Introduction to referer and referer policy
Lingyun going to sea | yidiantianxia & Huawei cloud: promoting the globalization of Chinese e-commerce enterprise brands
网络原理(1)——基础原理概述
Alibaba cloud award winning experience: how to mount NAS file system through ECS
AIRIOT助力城市管廊工程,智慧物联守护城市生命线
Mrs offline data analysis: process OBS data through Flink job
阿洛的烦恼
Write a jump table
Validutil, "Rethinking the setting of semi supervised learning on graphs"
I Basic concepts
[concept of network principle]
[paper reading] maps: Multi-Agent Reinforcement Learning Based Portfolio Management System
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
Data sorting in string
怎样用Google APIs和Google的应用系统进行集成(1)—-Google APIs简介
使用高斯Redis实现二级索引
神兵利器——敏感文件发现工具