diff options
| -rw-r--r-- | base/src/main/java/bjc/utils/ioutils/MirrorDB.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/base/src/main/java/bjc/utils/ioutils/MirrorDB.java b/base/src/main/java/bjc/utils/ioutils/MirrorDB.java new file mode 100644 index 0000000..230f2f0 --- /dev/null +++ b/base/src/main/java/bjc/utils/ioutils/MirrorDB.java @@ -0,0 +1,52 @@ +package bjc.utils.ioutils; + +import java.io.InputStream; +import java.io.IOException; + +import java.util.HashMap; +import java.util.Map; +import java.util.Scanner; + +public class MirrorDB { + private Map<String, String> mirrored; + + public MirrorDB() { + mirrored = new HashMap<>(); + + final InputStream stream = getClass().getResourceAsStream("/BidiMirrorDB.txt"); + + try (Scanner scn = new Scanner(stream)) { + String ln = ""; + + while (scn.hasNextLine()) { + ln = scn.nextLine(); + + if (ln.equals("")) { + continue; + } + if (ln.startsWith("#")) { + continue; + } + + final int cp1 = Integer.parseInt(ln.substring(0, 4), 16); + final int cp2 = Integer.parseInt(ln.substring(6, 10), 16); + + final char[] cpa1 = Character.toChars(cp1); + final char[] cpa2 = Character.toChars(cp2); + + final String cps1 = new String(cpa1); + final String cps2 = new String(cpa2); + + mirrored.put(cps1, cps2); + } + } + } + + public boolean canMirror(String mir) { + return mirrored.containsKey(mir); + } + + public String mirror(String mir) { + return mirrored.get(mir); + } +} |
