当前位置:网站首页>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 .
边栏推荐
猜你喜欢
Don't fall behind! Simple and easy-to-use low code development to quickly build an intelligent management information system
Codesonar enhances software reliability through innovative static analysis
智能软件分析平台Embold
CodeSonar通过创新型静态分析增强软件可靠性
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)
Is embedded system really safe? [how does onespin comprehensively solve the IC integrity problem for the development team]
软件缺陷静态分析 CodeSonar 5.2 新版发布
MySQL约束之默认约束default与零填充约束zerofill
使用枚举实现英文转盲文
使用高斯Redis实现二级索引
随机推荐
POJ 3140 Contestants Division「建议收藏」
Hdu4876zcc love cards (multi check questions)
[UVALive 6663 Count the Regions] (dfs + 离散化)[通俗易懂]
gridView自己定义做时间排版「建议收藏」
C语言多角度帮助你深入理解指针(1. 字符指针2. 数组指针和 指针数组 、数组传参和指针传参3. 函数指针4. 函数指针数组5. 指向函数指针数组的指针6. 回调函数)
uva 12230 – Crossing Rivers(概率)「建议收藏」
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)
Measure the height of the building
I have to use my ID card to open an account. Is the bank card safe? I don't understand it
GridView defines its own time for typesetting "suggestions collection"
Differences and connections between MinGW, mingw-w64, tdm-gcc and other tool chains "suggestions collection"
How to meet the dual needs of security and confidentiality of medical devices?
The latest version of codesonar has improved functional security and supports Misra, c++ parsing and visualization
反诈困境,国有大行如何破局?
Klocwork code static analysis tool
Implementation of mahout Pearson correlation
Tensorflow2.x下如何运行1.x的代码
openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」
写一下跳表
Cocos2d-x game archive [easy to understand]