2 * JIS X0208:1990 文字集合に関する諸々
\r
4 * Copyright(c) 2008 olyutorskii
\r
5 * $Id: CodeX0208.java 1002 2010-03-15 12:14:20Z olyutorskii $
\r
8 package jp.sourceforge.jindolf;
\r
10 import java.io.IOException;
\r
11 import java.util.Arrays;
\r
12 import java.util.SortedSet;
\r
13 import java.util.TreeSet;
\r
16 * JIS X0208:1990 文字集合に関する諸々。
\r
17 * TODO G国がUTF-8化した今、このクラスは不要?
\r
19 public final class CodeX0208{
\r
21 private static final String RESOURCE_INVALIDCHAR =
\r
22 "resources/invalidX0208.txt";
\r
23 private static final char[] INVALID_CHAR_ARRAY = createInvalidCharArray();
\r
26 * ソートされた、禁止文字配列を生成する。
\r
29 private static char[] createInvalidCharArray(){
\r
30 CharSequence source;
\r
32 source = Jindolf.loadResourceText(RESOURCE_INVALIDCHAR);
\r
33 }catch(IOException e){
\r
38 SortedSet<Character> charSet = new TreeSet<Character>();
\r
39 int sourceLength = source.length();
\r
40 for(int pos = 0; pos < sourceLength; pos++){
\r
41 char ch = source.charAt(pos);
\r
42 if(Character.isWhitespace(ch)) continue;
\r
46 char[] result = new char[charSet.size()];
\r
48 for(char ch : charSet){
\r
52 Arrays.sort(result);
\r
62 public static boolean isValid(char ch){
\r
63 int index = Arrays.binarySearch(INVALID_CHAR_ARRAY, ch);
\r
64 if(index < 0) return true;
\r
71 private CodeX0208(){
\r
73 throw new AssertionError();
\r
76 // TODO アラビア語やハングルやも弾きたい。
\r
77 // TODO JISエンコーダと区点チェックに作り直すか?
\r