+++ /dev/null
-/*\r
- * JIS X0208:1990 文字集合に関する諸々\r
- *\r
- * Copyright(c) 2008 olyutorskii\r
- * $Id: CodeX0208.java 1002 2010-03-15 12:14:20Z olyutorskii $\r
- */\r
-\r
-package jp.sourceforge.jindolf;\r
-\r
-import java.io.IOException;\r
-import java.util.Arrays;\r
-import java.util.SortedSet;\r
-import java.util.TreeSet;\r
-\r
-/**\r
- * JIS X0208:1990 文字集合に関する諸々。\r
- * TODO G国がUTF-8化した今、このクラスは不要?\r
- */\r
-public final class CodeX0208{\r
-\r
- private static final String RESOURCE_INVALIDCHAR =\r
- "resources/invalidX0208.txt";\r
- private static final char[] INVALID_CHAR_ARRAY = createInvalidCharArray();\r
-\r
- /**\r
- * ソートされた、禁止文字配列を生成する。\r
- * @return 禁止文字配列。\r
- */\r
- private static char[] createInvalidCharArray(){\r
- CharSequence source;\r
- try{\r
- source = Jindolf.loadResourceText(RESOURCE_INVALIDCHAR);\r
- }catch(IOException e){\r
- assert false;\r
- return null;\r
- }\r
-\r
- SortedSet<Character> charSet = new TreeSet<Character>();\r
- int sourceLength = source.length();\r
- for(int pos = 0; pos < sourceLength; pos++){\r
- char ch = source.charAt(pos);\r
- if(Character.isWhitespace(ch)) continue;\r
- charSet.add(ch);\r
- }\r
-\r
- char[] result = new char[charSet.size()];\r
- int pos = 0;\r
- for(char ch : charSet){\r
- result[pos++] = ch;\r
- }\r
-\r
- Arrays.sort(result);\r
-\r
- return result;\r
- }\r
-\r
- /**\r
- * 禁止文字か否か判定する。\r
- * @param ch 判定対象文字\r
- * @return 禁止ならfalse\r
- */\r
- public static boolean isValid(char ch){\r
- int index = Arrays.binarySearch(INVALID_CHAR_ARRAY, ch);\r
- if(index < 0) return true;\r
- return false;\r
- }\r
-\r
- /**\r
- * ダミーコンストラクタ。\r
- */\r
- private CodeX0208(){\r
- assert false;\r
- throw new AssertionError();\r
- }\r
-\r
- // TODO アラビア語やハングルやも弾きたい。\r
- // TODO JISエンコーダと区点チェックに作り直すか?\r
-}\r