当前位置:网站首页>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 .

边栏推荐
- Intelligent transportation is full of vitality. What will happen in the future? [easy to understand]
- Tensorflow2. How to run under x 1 Code of X
- Is private equity legal in China? Is it safe?
- Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
- FatMouse&#39; Trade (Hangdian 1009)
- Helix QAC 2020.2新版静态测试工具,最大限度扩展了标准合规性的覆盖范围
- Codesonar enhances software reliability through innovative static analysis
- CodeSonar网络研讨会
- DataTable数据转换为实体
- Apifox interface integrated management new artifact
猜你喜欢
Mysql子查询关键字的使用方式(exists)

Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation

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

如何满足医疗设备对安全性和保密性的双重需求?

The latest version of codesonar has improved functional security and supports Misra, c++ parsing and visualization

ISO 26262 - 基于需求测试以外的考虑因素

软件缺陷静态分析 CodeSonar 5.2 新版发布

如何满足医疗设备对安全性和保密性的双重需求?
![[paper reading] maps: Multi-Agent Reinforcement Learning Based Portfolio Management System](/img/76/b725788272ba2dcdf866b28cbcc897.jpg)
[paper reading] maps: Multi-Agent Reinforcement Learning Based Portfolio Management System

最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
随机推荐
【OpenCV 例程200篇】223. 特征提取之多边形拟合(cv.approxPolyDP)
阿洛的烦恼
MySQL约束之默认约束default与零填充约束zerofill
如何满足医疗设备对安全性和保密性的双重需求?
恶魔奶爸 B3 少量泛读,完成两万词汇量+
Jetty:配置连接器[通俗易懂]
Introduction to referer and referer policy
Lingyun going to sea | saihe & Huawei cloud: jointly help the sustainable development of cross-border e-commerce industry
Cocos2d-x 游戏存档[通俗易懂]
GridView defines its own time for typesetting "suggestions collection"
What are the official stock trading apps in the country? Is it safe to use
恶魔奶爸 C
Optimization cases of complex factor calculation: deep imbalance, buying and selling pressure index, volatility calculation
margin 等高布局
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)
UVA 11080 – place the guards
[award publicity] issue 22 publicity of the award list in June 2022: Community star selection | Newcomer Award | blog synchronization | recommendation Award
How to choose financial products? Novice doesn't know anything
Referrer和Referrer-Policy简介
A brief understanding of the in arc__ bridge、__ bridge_ Retained and__ bridge_ transfer