2 using System.Collections.Generic;
\r
9 List<string> mSplitedString;
\r
12 const int TOKEN_SPACE = 0;
\r
13 const int TOKEN_HIRAKANA = 1;
\r
14 const int TOKEN_NUMALPHA = 2;
\r
15 const int TOKEN_OTHER = 3;
\r
17 public NTSimString(String seed){
\r
18 mSplitedString = new List<string>();
\r
19 int current = TOKEN_OTHER;
\r
20 int len = seed.Length;
\r
23 for(; i < len; i++){
\r
25 int token = getToken(c);
\r
26 if(token == TOKEN_SPACE){
\r
27 if(current != TOKEN_SPACE){
\r
29 mSplitedString.Add(seed.Substring(start, i - start));
\r
31 current = TOKEN_SPACE;
\r
35 if(current != token){
\r
38 seed.Substring(start, i - start));
\r
45 if(start < i && current != TOKEN_SPACE){
\r
47 seed.Substring(start, i - start));
\r
51 public int match(String source){
\r
53 foreach (string line in mSplitedString)
\r
56 //int idx = line.match(source, 0, out len);
\r
57 //if (idx >= 0 && len > 1)
\r
59 // match_len += len;
\r
61 if (0 <= source.IndexOf(line, StringComparison.CurrentCultureIgnoreCase))
\r
63 match_len += line.Length;
\r
69 //DebugUtil.log("SimString logging...");
\r
70 //foreach(String line in mSplitedString){
\r
71 //DebugUtil.log(line);
\r
74 int getToken(char c){
\r
75 for(int i = 0; i < mSeparatorChar.Length; i++){
\r
76 if(c == mSeparatorChar[i]){
\r
80 for(int i = 0; i < mHiraKakaChar.Length; i++){
\r
81 if(c == mHiraKakaChar[i]){
\r
82 return TOKEN_HIRAKANA;
\r
85 for(int i = 0; i < mNumAlphaChar.Length; i++){
\r
86 if(c == mNumAlphaChar[i]){
\r
87 return TOKEN_NUMALPHA;
\r
93 static char [] mSeparatorChar = {
\r
94 ' ',' ','(',')','【','】','(',')','「','」','{','}','{','}','〈','〉',
\r
95 '《','》','「','」','『','』',',','.','、','。','★','※','*','?','!','?','!','・'};
\r
96 static char [] mHiraKakaChar = {
\r
97 'ー','ー','あ','ア','ぁ','ァ','い','イ','ぃ','ィ','う','ウ','ぅ','ゥ',
\r
98 'え','エ','ぇ','ェ','お','オ','ぉ','ォ','を','ヲ',
\r
99 'か','カ','ヵ','ヵ','き','キ','く','ク','け','ケ','ヶ','ヶ','こ','コ',
\r
100 'さ','サ','し','シ','す','ス','せ','セ','そ','ソ',
\r
101 'た','タ','ち','チ','つ','ツ','っ','ッ','て','テ','と','ト',
\r
102 'な','ナ','に','ニ','ぬ','ヌ','ね','ネ','の','ノ',
\r
103 'は','ハ','ワ','わ','ひ','ヒ','ふ','フ','へ','ヘ','ほ','ホ',
\r
104 'ま','マ','み','ミ','む','ム','め','メ','も','モ',
\r
105 'や','ヤ','ゃ','ャ','ゆ','ユ','ゅ','ュ','よ','ヨ','ょ','ョ',
\r
106 'ラ','ら','ラ','り','リ','リ','る','ル','ル',
\r
107 'れ','レ','レ','ろ','ロ','ロ','ん','ン',
\r
108 'が','ガ','ぎ','ギ','ぐ','グ','げ','ゲ','ご','ゴ',
\r
109 'ざ','ザ','じ','ジ','ぢ','ヂ','ず','ズ','づ','ヅ',
\r
110 'ぜ','ゼ','ぞ','ゾ','だ','ダ','で','デ','ど','ド',
\r
111 'ば','バ','び','ビ','ぶ','ブ','べ','ベ','ぼ','ボ',
\r
112 'ぱ','パ','ぴ','ピ','ぷ','プ','ぺ','ペ','ぽ','ポ'};
\r
113 static char [] mNumAlphaChar = {
\r
115 '0','0','1','1','2','2','3','3','4','4',
\r
116 '5','5','6','6','7','7','8','8','9','9',
\r
117 'A','a','A','a','B','b','B','b','C','c','C','c',
\r
118 'D','d','D','d','E','e','E','e','F','f','F','f',
\r
119 'G','g','G','g','H','h','H','h','I','i','I','i',
\r
120 'J','j','J','j','K','k','K','k', 'L','l','L','l',
\r
121 'M','m','M','m','N','n','N','n','O','o','O','o',
\r
122 'P','p','P','p','Q','q','Q','q','R','r','R','r',
\r
123 'S','s','S','s','T','t','T','t', 'U','u','U','u',
\r
124 'V','v','V','v','W','w','W','w','X','x','X','x',
\r
125 'Y','y','Y','y','Z','z','Z','z','%','%','$','$','#','#',
\r