当前位置:网站首页>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 .
边栏推荐
- [function recursion] do you know all five classic examples of simple recursion?
- 使用高斯Redis实现二级索引
- Mahout-Pearson correlation的实现
- 智能交通焕发勃勃生机,未来会呈现哪些巨变?[通俗易懂]
- I have to use my ID card to open an account. Is the bank card safe? I don't understand it
- 写了个 Markdown 命令行小工具,希望能提高园友们发文的效率!
- What are the official stock trading apps in the country? Is it safe to use
- 论文解读(ValidUtil)《Rethinking the Setting of Semi-supervised Learning on Graphs》
- sqlHelper的增删改查
- C语言 整型 和 浮点型 数据在内存中存储详解(内含原码反码补码,大小端存储等详解)
猜你喜欢
软件缺陷静态分析 CodeSonar 5.2 新版发布
Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
Make this crmeb single merchant wechat mall system popular, so easy to use!
嵌入式系统真正安全了吗?[ OneSpin如何为开发团队全面解决IC完整性问题 ]
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)
最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
Measure the height of the building
Don't fall behind! Simple and easy-to-use low code development to quickly build an intelligent management information system
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
程序猿赚的那点钱算个P啊!
随机推荐
Is it safe to open an account online now? I want to know where I can open an account in Nanning now?
Static analysis of software defects codesonar 5.2 release
2022年在启牛开中银股票的账户安全吗?
Helix QAC 2020.2新版静态测试工具,最大限度扩展了标准合规性的覆盖范围
ERROR: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your
反诈困境,国有大行如何破局?
POJ 3140 Contestants Division「建议收藏」
Intelligent transportation is full of vitality. What will happen in the future? [easy to understand]
最新版本的CodeSonar改进了功能安全性,支持MISRA,C ++解析和可视化
Klocwork code static analysis tool
[uvalive 6663 count the regions] (DFS + discretization) [easy to understand]
[concept of network principle]
Apifox interface integrated management new artifact
Object-C programming tips timer "suggestions collection"
恶魔奶爸 A3阶段 近常速语流初接触
Is private equity legal in China? Is it safe?
刚开户的能买什么股票呢?炒股账户安全吗
Numerical method for solving optimal control problem (0) -- Definition
如何挑选基金产品?2022年7月份适合买什么基金?
Details of C language integer and floating-point data storage in memory (including details of original code, inverse code, complement, size end storage, etc.)