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

 

 

 

原网站

版权声明
本文为[No Bug]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/188/202207071842366463.html