当前位置:网站首页>Using enumeration to realize English to braille
Using enumeration to realize English to braille
2022-07-07 21:06:00 【No Bug】
Explain it. , Maybe you think it's funny to turn to Braille , Blind people can't see . exactly , It really doesn't make sense to simply turn to Braille , But later, a Braille Printer will be prepared for use ! Chinese to Braille will also be updated in a few days .
I know that there are still many imperfections in the procedure , It will be improved step by step .
English to braille is mainly used ASCII Code comparison table

Clear your mind first :
1. First, think about how to express Braille .
2. Because English braille is not case sensitive , All letters need to be converted to uppercase .
3. How to define the relationship between letters and Braille .
Sort out the ideas and solve them one by one .
solve the problem :
1. First, think about how to express Braille .
No matter what kind of Braille , It all consists of six points , It consists of three lines . For convenience, just use 6 Bit binary , Commas indicate line breaks .0 It means that there is no ,1 Express .
Such as :
A Braille is
, Expressed as 10,00,00
H Braille is
, Expressed as 10,11,00
2. Because English braille is not case sensitive , All letters need to be converted to uppercase .
java Use toUpperCase() Method can convert all letters in the string to uppercase .
And then use toCharArray() Method converts a string into an array of characters .
3. How to define the relationship between letters and Braille .
Enumeration method is used here , Easy to use , It's also pretty .
as follows :
package tobraille1.enums;
/**
* List 26 A letter of Braille
*/
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;
}
}
Just briefly introduce enumeration classes .
1. Creating enum Class time ,Java By default, this class inherits enum, therefore enum Class can no longer inherit other classes .
2. stay enum Class , The created instance must be placed on the top of the class , Multiple instances are separated by commas , If the instantiation constant is not initialized , The system will provide a parameterless Construction method
3. If the instance is initialized , You must create a constructor with corresponding parameters .
4、 If there are abstract methods in the enumeration class , Note that the abstract method should be placed after the instance . Then each instance needs to implement this abstract method in the enumeration class .
public enum Season {
SPING(" spring "){
@Override public String doPlay() {
return " spring ";
}
},SUMMMER(" summer "){
@Override public String doPlay() {
return " summer ";
}
},FALL(" autumn "){
@Override public String doPlay() {
return " autumn ";
}
}, WINTER(" winter "){
@Override public String doPlay() {
return " winter ";
}
};private final String seansonName;
Season(String seansonName) {
this.seansonName = seansonName;
}public abstract String doPlay();
}
Finally, the source code of English to braille is attached :
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 {
// English translation Braille
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);
}
// Chinese translation Braille
else {
return R.success("");
}
} catch (Exception e) {
e.printStackTrace();
return R.error(" There is an error , Translation failure ");
}
}
public static void main(String[] args) {
ToBrailleMsg toBrailleMsg = new ToBrailleMsg();
toBrailleMsg.setLanguage("en-us");
toBrailleMsg.setText("hello");
toBraille(toBrailleMsg);
}
}
Running results .

边栏推荐
- Deadlock conditions and preventive treatment [easy to understand]
- Flask1.1.4 werkzeug1.0.1 source code analysis: Routing
- 201215-03-19—cocos2dx内存管理–具体解释「建议收藏」
- 反诈困境,国有大行如何破局?
- UVA 11080 – Place the Guards(二分图判定)
- Insufficient permissions
- Introduction to referer and referer policy
- I have to use my ID card to open an account. Is the bank card safe? I don't understand it
- A brief understanding of the in arc__ bridge、__ bridge_ Retained and__ bridge_ transfer
- Mysql子查询关键字的使用方式(exists)
猜你喜欢

C语言多角度帮助你深入理解指针(1. 字符指针2. 数组指针和 指针数组 、数组传参和指针传参3. 函数指针4. 函数指针数组5. 指向函数指针数组的指针6. 回调函数)

Tensorflow2. How to run under x 1 Code of X

Cantata9.0 | new features

恶魔奶爸 B3 少量泛读,完成两万词汇量+

最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化

AADL Inspector 故障树安全分析模块

Tensorflow2.x下如何运行1.x的代码

万字总结数据存储,三大知识点
![Is embedded system really safe? [how does onespin comprehensively solve the IC integrity problem for the development team]](/img/af/61b384b1b6ba46aa1a6011f8a30085.png)
Is embedded system really safe? [how does onespin comprehensively solve the IC integrity problem for the development team]

Nebula Importer 数据导入实践
随机推荐
如何满足医疗设备对安全性和保密性的双重需求?
How to choose financial products? Novice doesn't know anything
Klocwork 代码静态分析工具
Helix QAC 2020.2新版静态测试工具,最大限度扩展了标准合规性的覆盖范围
写一下跳表
Mysql子查询关键字的使用方式(exists)
程序猿赚的那点钱算个P啊!
Tensorflow2.x下如何运行1.x的代码
margin 等高布局
Intelligent software analysis platform embold
现在网上开户安全么?想知道我现在在南宁,到哪里开户比较好?
sqlHelper的增删改查
解决使用uni-app MediaError MediaError ErrorCode -5
ISO 26262 - 基于需求测试以外的考虑因素
Referrer和Referrer-Policy简介
私募基金在中國合法嗎?安全嗎?
恶魔奶爸 指南帖——简易版
Cantata9.0 | new features
【C语言】指针进阶---指针你真的学懂了吗?
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your