2 // This software is now distributed according to
\r
3 // the Lesser Gnu Public License. Please see
\r
4 // http://www.gnu.org/copyleft/lesser.txt for
\r
6 // -- Happy Computing!
\r
8 package com.stevesoft.pat;
\r
10 /** Encapsulates the Unicode definitions of Upper,
\r
11 Lower, and Title case as defined by <a href="http://www.unicode.org">
\r
14 The performance of the methods found in String
\r
15 and Character is better, but these methods work
\r
16 both in java 1.0 and 1.1. If it is desirable,
\r
17 either to gain a slight performance increase or
\r
18 to accomodate application specific modifications
\r
19 to the definitions of upper, lower, and title case
\r
20 then it should be a straightforward task to substitute
\r
21 your own methods for these.
\r
23 final public class CaseMgr {
\r
24 final static boolean java_1_0 = false;
\r
25 /** Convert a character to upper case .*/
\r
26 public static char toUpperCase(char c) {
\r
30 case 97: ret=65; break;
\r
31 case 98: ret=66; break;
\r
32 case 99: ret=67; break;
\r
33 case 100: ret=68; break;
\r
34 case 101: ret=69; break;
\r
35 case 102: ret=70; break;
\r
36 case 103: ret=71; break;
\r
37 case 104: ret=72; break;
\r
38 case 105: ret=73; break;
\r
39 case 106: ret=74; break;
\r
40 case 107: ret=75; break;
\r
41 case 108: ret=76; break;
\r
42 case 109: ret=77; break;
\r
43 case 110: ret=78; break;
\r
44 case 111: ret=79; break;
\r
45 case 112: ret=80; break;
\r
46 case 113: ret=81; break;
\r
47 case 114: ret=82; break;
\r
48 case 115: ret=83; break;
\r
49 case 116: ret=84; break;
\r
50 case 117: ret=85; break;
\r
51 case 118: ret=86; break;
\r
52 case 119: ret=87; break;
\r
53 case 120: ret=88; break;
\r
54 case 121: ret=89; break;
\r
55 case 122: ret=90; break;
\r
56 case 224: ret=192; break;
\r
57 case 225: ret=193; break;
\r
58 case 226: ret=194; break;
\r
59 case 227: ret=195; break;
\r
60 case 228: ret=196; break;
\r
61 case 229: ret=197; break;
\r
62 case 230: ret=198; break;
\r
63 case 231: ret=199; break;
\r
64 case 232: ret=200; break;
\r
65 case 233: ret=201; break;
\r
66 case 234: ret=202; break;
\r
67 case 235: ret=203; break;
\r
68 case 236: ret=204; break;
\r
69 case 237: ret=205; break;
\r
70 case 238: ret=206; break;
\r
71 case 239: ret=207; break;
\r
72 case 240: ret=208; break;
\r
73 case 241: ret=209; break;
\r
74 case 242: ret=210; break;
\r
75 case 243: ret=211; break;
\r
76 case 244: ret=212; break;
\r
77 case 245: ret=213; break;
\r
78 case 246: ret=214; break;
\r
79 case 248: ret=216; break;
\r
80 case 249: ret=217; break;
\r
81 case 250: ret=218; break;
\r
82 case 251: ret=219; break;
\r
83 case 252: ret=220; break;
\r
84 case 253: ret=221; break;
\r
85 case 254: ret=222; break;
\r
86 case 255: ret=376; break;
\r
87 case 257: ret=256; break;
\r
88 case 259: ret=258; break;
\r
89 case 261: ret=260; break;
\r
90 case 263: ret=262; break;
\r
91 case 265: ret=264; break;
\r
92 case 267: ret=266; break;
\r
93 case 269: ret=268; break;
\r
94 case 271: ret=270; break;
\r
95 case 273: ret=272; break;
\r
96 case 275: ret=274; break;
\r
97 case 277: ret=276; break;
\r
98 case 279: ret=278; break;
\r
99 case 281: ret=280; break;
\r
100 case 283: ret=282; break;
\r
101 case 285: ret=284; break;
\r
102 case 287: ret=286; break;
\r
103 case 289: ret=288; break;
\r
104 case 291: ret=290; break;
\r
105 case 293: ret=292; break;
\r
106 case 295: ret=294; break;
\r
107 case 297: ret=296; break;
\r
108 case 299: ret=298; break;
\r
109 case 301: ret=300; break;
\r
110 case 303: ret=302; break;
\r
111 case 305: ret=73; break;
\r
112 case 307: ret=306; break;
\r
113 case 309: ret=308; break;
\r
114 case 311: ret=310; break;
\r
115 case 314: ret=313; break;
\r
116 case 316: ret=315; break;
\r
117 case 318: ret=317; break;
\r
118 case 320: ret=319; break;
\r
119 case 322: ret=321; break;
\r
120 case 324: ret=323; break;
\r
121 case 326: ret=325; break;
\r
122 case 328: ret=327; break;
\r
123 case 331: ret=330; break;
\r
124 case 333: ret=332; break;
\r
125 case 335: ret=334; break;
\r
126 case 337: ret=336; break;
\r
127 case 339: ret=338; break;
\r
128 case 341: ret=340; break;
\r
129 case 343: ret=342; break;
\r
130 case 345: ret=344; break;
\r
131 case 347: ret=346; break;
\r
132 case 349: ret=348; break;
\r
133 case 351: ret=350; break;
\r
134 case 353: ret=352; break;
\r
135 case 355: ret=354; break;
\r
136 case 357: ret=356; break;
\r
137 case 359: ret=358; break;
\r
138 case 361: ret=360; break;
\r
139 case 363: ret=362; break;
\r
140 case 365: ret=364; break;
\r
141 case 367: ret=366; break;
\r
142 case 369: ret=368; break;
\r
143 case 371: ret=370; break;
\r
144 case 373: ret=372; break;
\r
145 case 375: ret=374; break;
\r
146 case 378: ret=377; break;
\r
147 case 380: ret=379; break;
\r
148 case 382: ret=381; break;
\r
149 case 383: ret=83; break;
\r
150 case 387: ret=386; break;
\r
151 case 389: ret=388; break;
\r
152 case 392: ret=391; break;
\r
153 case 396: ret=395; break;
\r
154 case 402: ret=401; break;
\r
155 case 409: ret=408; break;
\r
156 case 417: ret=416; break;
\r
157 case 419: ret=418; break;
\r
158 case 421: ret=420; break;
\r
159 case 424: ret=423; break;
\r
160 case 429: ret=428; break;
\r
161 case 432: ret=431; break;
\r
162 case 436: ret=435; break;
\r
163 case 438: ret=437; break;
\r
164 case 441: ret=440; break;
\r
165 case 445: ret=444; break;
\r
166 case 453: ret=452; break;
\r
167 case 454: ret=452; break;
\r
168 case 456: ret=455; break;
\r
169 case 457: ret=455; break;
\r
170 case 459: ret=458; break;
\r
171 case 460: ret=458; break;
\r
172 case 462: ret=461; break;
\r
173 case 464: ret=463; break;
\r
174 case 466: ret=465; break;
\r
175 case 468: ret=467; break;
\r
176 case 470: ret=469; break;
\r
177 case 472: ret=471; break;
\r
178 case 474: ret=473; break;
\r
179 case 476: ret=475; break;
\r
180 case 479: ret=478; break;
\r
181 case 481: ret=480; break;
\r
182 case 483: ret=482; break;
\r
183 case 485: ret=484; break;
\r
184 case 487: ret=486; break;
\r
185 case 489: ret=488; break;
\r
186 case 491: ret=490; break;
\r
187 case 493: ret=492; break;
\r
188 case 495: ret=494; break;
\r
189 case 498: ret=497; break;
\r
190 case 499: ret=497; break;
\r
191 case 501: ret=500; break;
\r
192 case 507: ret=506; break;
\r
193 case 509: ret=508; break;
\r
194 case 511: ret=510; break;
\r
195 case 513: ret=512; break;
\r
196 case 515: ret=514; break;
\r
197 case 517: ret=516; break;
\r
198 case 519: ret=518; break;
\r
199 case 521: ret=520; break;
\r
200 case 523: ret=522; break;
\r
201 case 525: ret=524; break;
\r
202 case 527: ret=526; break;
\r
203 case 529: ret=528; break;
\r
204 case 531: ret=530; break;
\r
205 case 533: ret=532; break;
\r
206 case 535: ret=534; break;
\r
207 case 595: ret=385; break;
\r
208 case 596: ret=390; break;
\r
209 case 598: ret=393; break;
\r
210 case 599: ret=394; break;
\r
211 case 600: ret=398; break;
\r
212 case 601: ret=399; break;
\r
213 case 603: ret=400; break;
\r
214 case 608: ret=403; break;
\r
215 case 611: ret=404; break;
\r
216 case 616: ret=407; break;
\r
217 case 617: ret=406; break;
\r
218 case 623: ret=412; break;
\r
219 case 626: ret=413; break;
\r
220 case 643: ret=425; break;
\r
221 case 648: ret=430; break;
\r
222 case 650: ret=433; break;
\r
223 case 651: ret=434; break;
\r
224 case 658: ret=439; break;
\r
225 case 940: ret=902; break;
\r
226 case 941: ret=904; break;
\r
227 case 942: ret=905; break;
\r
228 case 943: ret=906; break;
\r
229 case 945: ret=913; break;
\r
230 case 946: ret=914; break;
\r
231 case 947: ret=915; break;
\r
232 case 948: ret=916; break;
\r
233 case 949: ret=917; break;
\r
234 case 950: ret=918; break;
\r
235 case 951: ret=919; break;
\r
236 case 952: ret=920; break;
\r
237 case 953: ret=921; break;
\r
238 case 954: ret=922; break;
\r
239 case 955: ret=923; break;
\r
240 case 956: ret=924; break;
\r
241 case 957: ret=925; break;
\r
242 case 958: ret=926; break;
\r
243 case 959: ret=927; break;
\r
244 case 960: ret=928; break;
\r
245 case 961: ret=929; break;
\r
246 case 963: ret=931; break;
\r
247 case 964: ret=932; break;
\r
248 case 965: ret=933; break;
\r
249 case 966: ret=934; break;
\r
250 case 967: ret=935; break;
\r
251 case 968: ret=936; break;
\r
252 case 969: ret=937; break;
\r
253 case 970: ret=938; break;
\r
254 case 971: ret=939; break;
\r
255 case 972: ret=908; break;
\r
256 case 973: ret=910; break;
\r
257 case 974: ret=911; break;
\r
258 case 976: ret=914; break;
\r
259 case 977: ret=920; break;
\r
260 case 981: ret=934; break;
\r
261 case 982: ret=928; break;
\r
262 case 995: ret=994; break;
\r
263 case 997: ret=996; break;
\r
264 case 999: ret=998; break;
\r
265 case 1001: ret=1000; break;
\r
266 case 1003: ret=1002; break;
\r
267 case 1005: ret=1004; break;
\r
268 case 1007: ret=1006; break;
\r
269 case 1008: ret=922; break;
\r
270 case 1009: ret=929; break;
\r
271 case 1072: ret=1040; break;
\r
272 case 1073: ret=1041; break;
\r
273 case 1074: ret=1042; break;
\r
274 case 1075: ret=1043; break;
\r
275 case 1076: ret=1044; break;
\r
276 case 1077: ret=1045; break;
\r
277 case 1078: ret=1046; break;
\r
278 case 1079: ret=1047; break;
\r
279 case 1080: ret=1048; break;
\r
280 case 1081: ret=1049; break;
\r
281 case 1082: ret=1050; break;
\r
282 case 1083: ret=1051; break;
\r
283 case 1084: ret=1052; break;
\r
284 case 1085: ret=1053; break;
\r
285 case 1086: ret=1054; break;
\r
286 case 1087: ret=1055; break;
\r
287 case 1088: ret=1056; break;
\r
288 case 1089: ret=1057; break;
\r
289 case 1090: ret=1058; break;
\r
290 case 1091: ret=1059; break;
\r
291 case 1092: ret=1060; break;
\r
292 case 1093: ret=1061; break;
\r
293 case 1094: ret=1062; break;
\r
294 case 1095: ret=1063; break;
\r
295 case 1096: ret=1064; break;
\r
296 case 1097: ret=1065; break;
\r
297 case 1098: ret=1066; break;
\r
298 case 1099: ret=1067; break;
\r
299 case 1100: ret=1068; break;
\r
300 case 1101: ret=1069; break;
\r
301 case 1102: ret=1070; break;
\r
302 case 1103: ret=1071; break;
\r
303 case 1105: ret=1025; break;
\r
304 case 1106: ret=1026; break;
\r
305 case 1107: ret=1027; break;
\r
306 case 1108: ret=1028; break;
\r
307 case 1109: ret=1029; break;
\r
308 case 1110: ret=1030; break;
\r
309 case 1111: ret=1031; break;
\r
310 case 1112: ret=1032; break;
\r
311 case 1113: ret=1033; break;
\r
312 case 1114: ret=1034; break;
\r
313 case 1115: ret=1035; break;
\r
314 case 1116: ret=1036; break;
\r
315 case 1118: ret=1038; break;
\r
316 case 1119: ret=1039; break;
\r
317 case 1121: ret=1120; break;
\r
318 case 1123: ret=1122; break;
\r
319 case 1125: ret=1124; break;
\r
320 case 1127: ret=1126; break;
\r
321 case 1129: ret=1128; break;
\r
322 case 1131: ret=1130; break;
\r
323 case 1133: ret=1132; break;
\r
324 case 1135: ret=1134; break;
\r
325 case 1137: ret=1136; break;
\r
326 case 1139: ret=1138; break;
\r
327 case 1141: ret=1140; break;
\r
328 case 1143: ret=1142; break;
\r
329 case 1145: ret=1144; break;
\r
330 case 1147: ret=1146; break;
\r
331 case 1149: ret=1148; break;
\r
332 case 1151: ret=1150; break;
\r
333 case 1153: ret=1152; break;
\r
334 case 1169: ret=1168; break;
\r
335 case 1171: ret=1170; break;
\r
336 case 1173: ret=1172; break;
\r
337 case 1175: ret=1174; break;
\r
338 case 1177: ret=1176; break;
\r
339 case 1179: ret=1178; break;
\r
340 case 1181: ret=1180; break;
\r
341 case 1183: ret=1182; break;
\r
342 case 1185: ret=1184; break;
\r
343 case 1187: ret=1186; break;
\r
344 case 1189: ret=1188; break;
\r
345 case 1191: ret=1190; break;
\r
346 case 1193: ret=1192; break;
\r
347 case 1195: ret=1194; break;
\r
348 case 1197: ret=1196; break;
\r
349 case 1199: ret=1198; break;
\r
350 case 1201: ret=1200; break;
\r
351 case 1203: ret=1202; break;
\r
352 case 1205: ret=1204; break;
\r
353 case 1207: ret=1206; break;
\r
354 case 1209: ret=1208; break;
\r
355 case 1211: ret=1210; break;
\r
356 case 1213: ret=1212; break;
\r
357 case 1215: ret=1214; break;
\r
358 case 1218: ret=1217; break;
\r
359 case 1220: ret=1219; break;
\r
360 case 1224: ret=1223; break;
\r
361 case 1228: ret=1227; break;
\r
362 case 1233: ret=1232; break;
\r
363 case 1235: ret=1234; break;
\r
364 case 1237: ret=1236; break;
\r
365 case 1239: ret=1238; break;
\r
366 case 1241: ret=1240; break;
\r
367 case 1243: ret=1242; break;
\r
368 case 1245: ret=1244; break;
\r
369 case 1247: ret=1246; break;
\r
370 case 1249: ret=1248; break;
\r
371 case 1251: ret=1250; break;
\r
372 case 1253: ret=1252; break;
\r
373 case 1255: ret=1254; break;
\r
374 case 1257: ret=1256; break;
\r
375 case 1259: ret=1258; break;
\r
376 case 1263: ret=1262; break;
\r
377 case 1265: ret=1264; break;
\r
378 case 1267: ret=1266; break;
\r
379 case 1269: ret=1268; break;
\r
380 case 1273: ret=1272; break;
\r
381 case 1377: ret=1329; break;
\r
382 case 1378: ret=1330; break;
\r
383 case 1379: ret=1331; break;
\r
384 case 1380: ret=1332; break;
\r
385 case 1381: ret=1333; break;
\r
386 case 1382: ret=1334; break;
\r
387 case 1383: ret=1335; break;
\r
388 case 1384: ret=1336; break;
\r
389 case 1385: ret=1337; break;
\r
390 case 1386: ret=1338; break;
\r
391 case 1387: ret=1339; break;
\r
392 case 1388: ret=1340; break;
\r
393 case 1389: ret=1341; break;
\r
394 case 1390: ret=1342; break;
\r
395 case 1391: ret=1343; break;
\r
396 case 1392: ret=1344; break;
\r
397 case 1393: ret=1345; break;
\r
398 case 1394: ret=1346; break;
\r
399 case 1395: ret=1347; break;
\r
400 case 1396: ret=1348; break;
\r
401 case 1397: ret=1349; break;
\r
402 case 1398: ret=1350; break;
\r
403 case 1399: ret=1351; break;
\r
404 case 1400: ret=1352; break;
\r
405 case 1401: ret=1353; break;
\r
406 case 1402: ret=1354; break;
\r
407 case 1403: ret=1355; break;
\r
408 case 1404: ret=1356; break;
\r
409 case 1405: ret=1357; break;
\r
410 case 1406: ret=1358; break;
\r
411 case 1407: ret=1359; break;
\r
412 case 1408: ret=1360; break;
\r
413 case 1409: ret=1361; break;
\r
414 case 1410: ret=1362; break;
\r
415 case 1411: ret=1363; break;
\r
416 case 1412: ret=1364; break;
\r
417 case 1413: ret=1365; break;
\r
418 case 1414: ret=1366; break;
\r
419 case 7681: ret=7680; break;
\r
420 case 7683: ret=7682; break;
\r
421 case 7685: ret=7684; break;
\r
422 case 7687: ret=7686; break;
\r
423 case 7689: ret=7688; break;
\r
424 case 7691: ret=7690; break;
\r
425 case 7693: ret=7692; break;
\r
426 case 7695: ret=7694; break;
\r
427 case 7697: ret=7696; break;
\r
428 case 7699: ret=7698; break;
\r
429 case 7701: ret=7700; break;
\r
430 case 7703: ret=7702; break;
\r
431 case 7705: ret=7704; break;
\r
432 case 7707: ret=7706; break;
\r
433 case 7709: ret=7708; break;
\r
434 case 7711: ret=7710; break;
\r
435 case 7713: ret=7712; break;
\r
436 case 7715: ret=7714; break;
\r
437 case 7717: ret=7716; break;
\r
438 case 7719: ret=7718; break;
\r
439 case 7721: ret=7720; break;
\r
440 case 7723: ret=7722; break;
\r
441 case 7725: ret=7724; break;
\r
442 case 7727: ret=7726; break;
\r
443 case 7729: ret=7728; break;
\r
444 case 7731: ret=7730; break;
\r
445 case 7733: ret=7732; break;
\r
446 case 7735: ret=7734; break;
\r
447 case 7737: ret=7736; break;
\r
448 case 7739: ret=7738; break;
\r
449 case 7741: ret=7740; break;
\r
450 case 7743: ret=7742; break;
\r
451 case 7745: ret=7744; break;
\r
452 case 7747: ret=7746; break;
\r
453 case 7749: ret=7748; break;
\r
454 case 7751: ret=7750; break;
\r
455 case 7753: ret=7752; break;
\r
456 case 7755: ret=7754; break;
\r
457 case 7757: ret=7756; break;
\r
458 case 7759: ret=7758; break;
\r
459 case 7761: ret=7760; break;
\r
460 case 7763: ret=7762; break;
\r
461 case 7765: ret=7764; break;
\r
462 case 7767: ret=7766; break;
\r
463 case 7769: ret=7768; break;
\r
464 case 7771: ret=7770; break;
\r
465 case 7773: ret=7772; break;
\r
466 case 7775: ret=7774; break;
\r
467 case 7777: ret=7776; break;
\r
468 case 7779: ret=7778; break;
\r
469 case 7781: ret=7780; break;
\r
470 case 7783: ret=7782; break;
\r
471 case 7785: ret=7784; break;
\r
472 case 7787: ret=7786; break;
\r
473 case 7789: ret=7788; break;
\r
474 case 7791: ret=7790; break;
\r
475 case 7793: ret=7792; break;
\r
476 case 7795: ret=7794; break;
\r
477 case 7797: ret=7796; break;
\r
478 case 7799: ret=7798; break;
\r
479 case 7801: ret=7800; break;
\r
480 case 7803: ret=7802; break;
\r
481 case 7805: ret=7804; break;
\r
482 case 7807: ret=7806; break;
\r
483 case 7809: ret=7808; break;
\r
484 case 7811: ret=7810; break;
\r
485 case 7813: ret=7812; break;
\r
486 case 7815: ret=7814; break;
\r
487 case 7817: ret=7816; break;
\r
488 case 7819: ret=7818; break;
\r
489 case 7821: ret=7820; break;
\r
490 case 7823: ret=7822; break;
\r
491 case 7825: ret=7824; break;
\r
492 case 7827: ret=7826; break;
\r
493 case 7829: ret=7828; break;
\r
494 case 7841: ret=7840; break;
\r
495 case 7843: ret=7842; break;
\r
496 case 7845: ret=7844; break;
\r
497 case 7847: ret=7846; break;
\r
498 case 7849: ret=7848; break;
\r
499 case 7851: ret=7850; break;
\r
500 case 7853: ret=7852; break;
\r
501 case 7855: ret=7854; break;
\r
502 case 7857: ret=7856; break;
\r
503 case 7859: ret=7858; break;
\r
504 case 7861: ret=7860; break;
\r
505 case 7863: ret=7862; break;
\r
506 case 7865: ret=7864; break;
\r
507 case 7867: ret=7866; break;
\r
508 case 7869: ret=7868; break;
\r
509 case 7871: ret=7870; break;
\r
510 case 7873: ret=7872; break;
\r
511 case 7875: ret=7874; break;
\r
512 case 7877: ret=7876; break;
\r
513 case 7879: ret=7878; break;
\r
514 case 7881: ret=7880; break;
\r
515 case 7883: ret=7882; break;
\r
516 case 7885: ret=7884; break;
\r
517 case 7887: ret=7886; break;
\r
518 case 7889: ret=7888; break;
\r
519 case 7891: ret=7890; break;
\r
520 case 7893: ret=7892; break;
\r
521 case 7895: ret=7894; break;
\r
522 case 7897: ret=7896; break;
\r
523 case 7899: ret=7898; break;
\r
524 case 7901: ret=7900; break;
\r
525 case 7903: ret=7902; break;
\r
526 case 7905: ret=7904; break;
\r
527 case 7907: ret=7906; break;
\r
528 case 7909: ret=7908; break;
\r
529 case 7911: ret=7910; break;
\r
530 case 7913: ret=7912; break;
\r
531 case 7915: ret=7914; break;
\r
532 case 7917: ret=7916; break;
\r
533 case 7919: ret=7918; break;
\r
534 case 7921: ret=7920; break;
\r
535 case 7923: ret=7922; break;
\r
536 case 7925: ret=7924; break;
\r
537 case 7927: ret=7926; break;
\r
538 case 7929: ret=7928; break;
\r
539 case 7936: ret=7944; break;
\r
540 case 7937: ret=7945; break;
\r
541 case 7938: ret=7946; break;
\r
542 case 7939: ret=7947; break;
\r
543 case 7940: ret=7948; break;
\r
544 case 7941: ret=7949; break;
\r
545 case 7942: ret=7950; break;
\r
546 case 7943: ret=7951; break;
\r
547 case 7952: ret=7960; break;
\r
548 case 7953: ret=7961; break;
\r
549 case 7954: ret=7962; break;
\r
550 case 7955: ret=7963; break;
\r
551 case 7956: ret=7964; break;
\r
552 case 7957: ret=7965; break;
\r
553 case 7968: ret=7976; break;
\r
554 case 7969: ret=7977; break;
\r
555 case 7970: ret=7978; break;
\r
556 case 7971: ret=7979; break;
\r
557 case 7972: ret=7980; break;
\r
558 case 7973: ret=7981; break;
\r
559 case 7974: ret=7982; break;
\r
560 case 7975: ret=7983; break;
\r
561 case 7984: ret=7992; break;
\r
562 case 7985: ret=7993; break;
\r
563 case 7986: ret=7994; break;
\r
564 case 7987: ret=7995; break;
\r
565 case 7988: ret=7996; break;
\r
566 case 7989: ret=7997; break;
\r
567 case 7990: ret=7998; break;
\r
568 case 7991: ret=7999; break;
\r
569 case 8000: ret=8008; break;
\r
570 case 8001: ret=8009; break;
\r
571 case 8002: ret=8010; break;
\r
572 case 8003: ret=8011; break;
\r
573 case 8004: ret=8012; break;
\r
574 case 8005: ret=8013; break;
\r
575 case 8017: ret=8025; break;
\r
576 case 8019: ret=8027; break;
\r
577 case 8021: ret=8029; break;
\r
578 case 8023: ret=8031; break;
\r
579 case 8032: ret=8040; break;
\r
580 case 8033: ret=8041; break;
\r
581 case 8034: ret=8042; break;
\r
582 case 8035: ret=8043; break;
\r
583 case 8036: ret=8044; break;
\r
584 case 8037: ret=8045; break;
\r
585 case 8038: ret=8046; break;
\r
586 case 8039: ret=8047; break;
\r
587 case 8048: ret=8122; break;
\r
588 case 8049: ret=8123; break;
\r
589 case 8050: ret=8136; break;
\r
590 case 8051: ret=8137; break;
\r
591 case 8052: ret=8138; break;
\r
592 case 8053: ret=8139; break;
\r
593 case 8054: ret=8154; break;
\r
594 case 8055: ret=8155; break;
\r
595 case 8056: ret=8184; break;
\r
596 case 8057: ret=8185; break;
\r
597 case 8058: ret=8170; break;
\r
598 case 8059: ret=8171; break;
\r
599 case 8060: ret=8186; break;
\r
600 case 8061: ret=8187; break;
\r
601 case 8064: ret=8072; break;
\r
602 case 8065: ret=8073; break;
\r
603 case 8066: ret=8074; break;
\r
604 case 8067: ret=8075; break;
\r
605 case 8068: ret=8076; break;
\r
606 case 8069: ret=8077; break;
\r
607 case 8070: ret=8078; break;
\r
608 case 8071: ret=8079; break;
\r
609 case 8080: ret=8088; break;
\r
610 case 8081: ret=8089; break;
\r
611 case 8082: ret=8090; break;
\r
612 case 8083: ret=8091; break;
\r
613 case 8084: ret=8092; break;
\r
614 case 8085: ret=8093; break;
\r
615 case 8086: ret=8094; break;
\r
616 case 8087: ret=8095; break;
\r
617 case 8096: ret=8104; break;
\r
618 case 8097: ret=8105; break;
\r
619 case 8098: ret=8106; break;
\r
620 case 8099: ret=8107; break;
\r
621 case 8100: ret=8108; break;
\r
622 case 8101: ret=8109; break;
\r
623 case 8102: ret=8110; break;
\r
624 case 8103: ret=8111; break;
\r
625 case 8112: ret=8120; break;
\r
626 case 8113: ret=8121; break;
\r
627 case 8115: ret=8124; break;
\r
628 case 8131: ret=8140; break;
\r
629 case 8144: ret=8152; break;
\r
630 case 8145: ret=8153; break;
\r
631 case 8160: ret=8168; break;
\r
632 case 8161: ret=8169; break;
\r
633 case 8165: ret=8172; break;
\r
634 case 8179: ret=8188; break;
\r
635 case 8560: ret=8544; break;
\r
636 case 8561: ret=8545; break;
\r
637 case 8562: ret=8546; break;
\r
638 case 8563: ret=8547; break;
\r
639 case 8564: ret=8548; break;
\r
640 case 8565: ret=8549; break;
\r
641 case 8566: ret=8550; break;
\r
642 case 8567: ret=8551; break;
\r
643 case 8568: ret=8552; break;
\r
644 case 8569: ret=8553; break;
\r
645 case 8570: ret=8554; break;
\r
646 case 8571: ret=8555; break;
\r
647 case 8572: ret=8556; break;
\r
648 case 8573: ret=8557; break;
\r
649 case 8574: ret=8558; break;
\r
650 case 8575: ret=8559; break;
\r
651 case 9424: ret=9398; break;
\r
652 case 9425: ret=9399; break;
\r
653 case 9426: ret=9400; break;
\r
654 case 9427: ret=9401; break;
\r
655 case 9428: ret=9402; break;
\r
656 case 9429: ret=9403; break;
\r
657 case 9430: ret=9404; break;
\r
658 case 9431: ret=9405; break;
\r
659 case 9432: ret=9406; break;
\r
660 case 9433: ret=9407; break;
\r
661 case 9434: ret=9408; break;
\r
662 case 9435: ret=9409; break;
\r
663 case 9436: ret=9410; break;
\r
664 case 9437: ret=9411; break;
\r
665 case 9438: ret=9412; break;
\r
666 case 9439: ret=9413; break;
\r
667 case 9440: ret=9414; break;
\r
668 case 9441: ret=9415; break;
\r
669 case 9442: ret=9416; break;
\r
670 case 9443: ret=9417; break;
\r
671 case 9444: ret=9418; break;
\r
672 case 9445: ret=9419; break;
\r
673 case 9446: ret=9420; break;
\r
674 case 9447: ret=9421; break;
\r
675 case 9448: ret=9422; break;
\r
676 case 9449: ret=9423; break;
\r
677 case 65345: ret=65313; break;
\r
678 case 65346: ret=65314; break;
\r
679 case 65347: ret=65315; break;
\r
680 case 65348: ret=65316; break;
\r
681 case 65349: ret=65317; break;
\r
682 case 65350: ret=65318; break;
\r
683 case 65351: ret=65319; break;
\r
684 case 65352: ret=65320; break;
\r
685 case 65353: ret=65321; break;
\r
686 case 65354: ret=65322; break;
\r
687 case 65355: ret=65323; break;
\r
688 case 65356: ret=65324; break;
\r
689 case 65357: ret=65325; break;
\r
690 case 65358: ret=65326; break;
\r
691 case 65359: ret=65327; break;
\r
692 case 65360: ret=65328; break;
\r
693 case 65361: ret=65329; break;
\r
694 case 65362: ret=65330; break;
\r
695 case 65363: ret=65331; break;
\r
696 case 65364: ret=65332; break;
\r
697 case 65365: ret=65333; break;
\r
698 case 65366: ret=65334; break;
\r
699 case 65367: ret=65335; break;
\r
700 case 65368: ret=65336; break;
\r
701 case 65369: ret=65337; break;
\r
702 case 65370: ret=65338; break;
\r
706 return Character.toUpperCase(c);
\r
708 /** Convert a character to lower case. */
\r
709 public static char toLowerCase(char c) {
\r
713 case 65: ret=97; break;
\r
714 case 66: ret=98; break;
\r
715 case 67: ret=99; break;
\r
716 case 68: ret=100; break;
\r
717 case 69: ret=101; break;
\r
718 case 70: ret=102; break;
\r
719 case 71: ret=103; break;
\r
720 case 72: ret=104; break;
\r
721 case 73: ret=105; break;
\r
722 case 74: ret=106; break;
\r
723 case 75: ret=107; break;
\r
724 case 76: ret=108; break;
\r
725 case 77: ret=109; break;
\r
726 case 78: ret=110; break;
\r
727 case 79: ret=111; break;
\r
728 case 80: ret=112; break;
\r
729 case 81: ret=113; break;
\r
730 case 82: ret=114; break;
\r
731 case 83: ret=115; break;
\r
732 case 84: ret=116; break;
\r
733 case 85: ret=117; break;
\r
734 case 86: ret=118; break;
\r
735 case 87: ret=119; break;
\r
736 case 88: ret=120; break;
\r
737 case 89: ret=121; break;
\r
738 case 90: ret=122; break;
\r
739 case 192: ret=224; break;
\r
740 case 193: ret=225; break;
\r
741 case 194: ret=226; break;
\r
742 case 195: ret=227; break;
\r
743 case 196: ret=228; break;
\r
744 case 197: ret=229; break;
\r
745 case 198: ret=230; break;
\r
746 case 199: ret=231; break;
\r
747 case 200: ret=232; break;
\r
748 case 201: ret=233; break;
\r
749 case 202: ret=234; break;
\r
750 case 203: ret=235; break;
\r
751 case 204: ret=236; break;
\r
752 case 205: ret=237; break;
\r
753 case 206: ret=238; break;
\r
754 case 207: ret=239; break;
\r
755 case 208: ret=240; break;
\r
756 case 209: ret=241; break;
\r
757 case 210: ret=242; break;
\r
758 case 211: ret=243; break;
\r
759 case 212: ret=244; break;
\r
760 case 213: ret=245; break;
\r
761 case 214: ret=246; break;
\r
762 case 216: ret=248; break;
\r
763 case 217: ret=249; break;
\r
764 case 218: ret=250; break;
\r
765 case 219: ret=251; break;
\r
766 case 220: ret=252; break;
\r
767 case 221: ret=253; break;
\r
768 case 222: ret=254; break;
\r
769 case 256: ret=257; break;
\r
770 case 258: ret=259; break;
\r
771 case 260: ret=261; break;
\r
772 case 262: ret=263; break;
\r
773 case 264: ret=265; break;
\r
774 case 266: ret=267; break;
\r
775 case 268: ret=269; break;
\r
776 case 270: ret=271; break;
\r
777 case 272: ret=273; break;
\r
778 case 274: ret=275; break;
\r
779 case 276: ret=277; break;
\r
780 case 278: ret=279; break;
\r
781 case 280: ret=281; break;
\r
782 case 282: ret=283; break;
\r
783 case 284: ret=285; break;
\r
784 case 286: ret=287; break;
\r
785 case 288: ret=289; break;
\r
786 case 290: ret=291; break;
\r
787 case 292: ret=293; break;
\r
788 case 294: ret=295; break;
\r
789 case 296: ret=297; break;
\r
790 case 298: ret=299; break;
\r
791 case 300: ret=301; break;
\r
792 case 302: ret=303; break;
\r
793 case 304: ret=105; break;
\r
794 case 306: ret=307; break;
\r
795 case 308: ret=309; break;
\r
796 case 310: ret=311; break;
\r
797 case 313: ret=314; break;
\r
798 case 315: ret=316; break;
\r
799 case 317: ret=318; break;
\r
800 case 319: ret=320; break;
\r
801 case 321: ret=322; break;
\r
802 case 323: ret=324; break;
\r
803 case 325: ret=326; break;
\r
804 case 327: ret=328; break;
\r
805 case 330: ret=331; break;
\r
806 case 332: ret=333; break;
\r
807 case 334: ret=335; break;
\r
808 case 336: ret=337; break;
\r
809 case 338: ret=339; break;
\r
810 case 340: ret=341; break;
\r
811 case 342: ret=343; break;
\r
812 case 344: ret=345; break;
\r
813 case 346: ret=347; break;
\r
814 case 348: ret=349; break;
\r
815 case 350: ret=351; break;
\r
816 case 352: ret=353; break;
\r
817 case 354: ret=355; break;
\r
818 case 356: ret=357; break;
\r
819 case 358: ret=359; break;
\r
820 case 360: ret=361; break;
\r
821 case 362: ret=363; break;
\r
822 case 364: ret=365; break;
\r
823 case 366: ret=367; break;
\r
824 case 368: ret=369; break;
\r
825 case 370: ret=371; break;
\r
826 case 372: ret=373; break;
\r
827 case 374: ret=375; break;
\r
828 case 376: ret=255; break;
\r
829 case 377: ret=378; break;
\r
830 case 379: ret=380; break;
\r
831 case 381: ret=382; break;
\r
832 case 385: ret=595; break;
\r
833 case 386: ret=387; break;
\r
834 case 388: ret=389; break;
\r
835 case 390: ret=596; break;
\r
836 case 391: ret=392; break;
\r
837 case 393: ret=598; break;
\r
838 case 394: ret=599; break;
\r
839 case 395: ret=396; break;
\r
840 case 398: ret=600; break;
\r
841 case 399: ret=601; break;
\r
842 case 400: ret=603; break;
\r
843 case 401: ret=402; break;
\r
844 case 403: ret=608; break;
\r
845 case 404: ret=611; break;
\r
846 case 406: ret=617; break;
\r
847 case 407: ret=616; break;
\r
848 case 408: ret=409; break;
\r
849 case 412: ret=623; break;
\r
850 case 413: ret=626; break;
\r
851 case 416: ret=417; break;
\r
852 case 418: ret=419; break;
\r
853 case 420: ret=421; break;
\r
854 case 423: ret=424; break;
\r
855 case 425: ret=643; break;
\r
856 case 428: ret=429; break;
\r
857 case 430: ret=648; break;
\r
858 case 431: ret=432; break;
\r
859 case 433: ret=650; break;
\r
860 case 434: ret=651; break;
\r
861 case 435: ret=436; break;
\r
862 case 437: ret=438; break;
\r
863 case 439: ret=658; break;
\r
864 case 440: ret=441; break;
\r
865 case 444: ret=445; break;
\r
866 case 452: ret=454; break;
\r
867 case 453: ret=454; break;
\r
868 case 455: ret=457; break;
\r
869 case 456: ret=457; break;
\r
870 case 458: ret=460; break;
\r
871 case 459: ret=460; break;
\r
872 case 461: ret=462; break;
\r
873 case 463: ret=464; break;
\r
874 case 465: ret=466; break;
\r
875 case 467: ret=468; break;
\r
876 case 469: ret=470; break;
\r
877 case 471: ret=472; break;
\r
878 case 473: ret=474; break;
\r
879 case 475: ret=476; break;
\r
880 case 478: ret=479; break;
\r
881 case 480: ret=481; break;
\r
882 case 482: ret=483; break;
\r
883 case 484: ret=485; break;
\r
884 case 486: ret=487; break;
\r
885 case 488: ret=489; break;
\r
886 case 490: ret=491; break;
\r
887 case 492: ret=493; break;
\r
888 case 494: ret=495; break;
\r
889 case 497: ret=499; break;
\r
890 case 498: ret=499; break;
\r
891 case 500: ret=501; break;
\r
892 case 506: ret=507; break;
\r
893 case 508: ret=509; break;
\r
894 case 510: ret=511; break;
\r
895 case 512: ret=513; break;
\r
896 case 514: ret=515; break;
\r
897 case 516: ret=517; break;
\r
898 case 518: ret=519; break;
\r
899 case 520: ret=521; break;
\r
900 case 522: ret=523; break;
\r
901 case 524: ret=525; break;
\r
902 case 526: ret=527; break;
\r
903 case 528: ret=529; break;
\r
904 case 530: ret=531; break;
\r
905 case 532: ret=533; break;
\r
906 case 534: ret=535; break;
\r
907 case 902: ret=940; break;
\r
908 case 904: ret=941; break;
\r
909 case 905: ret=942; break;
\r
910 case 906: ret=943; break;
\r
911 case 908: ret=972; break;
\r
912 case 910: ret=973; break;
\r
913 case 911: ret=974; break;
\r
914 case 913: ret=945; break;
\r
915 case 914: ret=946; break;
\r
916 case 915: ret=947; break;
\r
917 case 916: ret=948; break;
\r
918 case 917: ret=949; break;
\r
919 case 918: ret=950; break;
\r
920 case 919: ret=951; break;
\r
921 case 920: ret=952; break;
\r
922 case 921: ret=953; break;
\r
923 case 922: ret=954; break;
\r
924 case 923: ret=955; break;
\r
925 case 924: ret=956; break;
\r
926 case 925: ret=957; break;
\r
927 case 926: ret=958; break;
\r
928 case 927: ret=959; break;
\r
929 case 928: ret=960; break;
\r
930 case 929: ret=961; break;
\r
931 case 931: ret=963; break;
\r
932 case 932: ret=964; break;
\r
933 case 933: ret=965; break;
\r
934 case 934: ret=966; break;
\r
935 case 935: ret=967; break;
\r
936 case 936: ret=968; break;
\r
937 case 937: ret=969; break;
\r
938 case 938: ret=970; break;
\r
939 case 939: ret=971; break;
\r
940 case 994: ret=995; break;
\r
941 case 996: ret=997; break;
\r
942 case 998: ret=999; break;
\r
943 case 1000: ret=1001; break;
\r
944 case 1002: ret=1003; break;
\r
945 case 1004: ret=1005; break;
\r
946 case 1006: ret=1007; break;
\r
947 case 1025: ret=1105; break;
\r
948 case 1026: ret=1106; break;
\r
949 case 1027: ret=1107; break;
\r
950 case 1028: ret=1108; break;
\r
951 case 1029: ret=1109; break;
\r
952 case 1030: ret=1110; break;
\r
953 case 1031: ret=1111; break;
\r
954 case 1032: ret=1112; break;
\r
955 case 1033: ret=1113; break;
\r
956 case 1034: ret=1114; break;
\r
957 case 1035: ret=1115; break;
\r
958 case 1036: ret=1116; break;
\r
959 case 1038: ret=1118; break;
\r
960 case 1039: ret=1119; break;
\r
961 case 1040: ret=1072; break;
\r
962 case 1041: ret=1073; break;
\r
963 case 1042: ret=1074; break;
\r
964 case 1043: ret=1075; break;
\r
965 case 1044: ret=1076; break;
\r
966 case 1045: ret=1077; break;
\r
967 case 1046: ret=1078; break;
\r
968 case 1047: ret=1079; break;
\r
969 case 1048: ret=1080; break;
\r
970 case 1049: ret=1081; break;
\r
971 case 1050: ret=1082; break;
\r
972 case 1051: ret=1083; break;
\r
973 case 1052: ret=1084; break;
\r
974 case 1053: ret=1085; break;
\r
975 case 1054: ret=1086; break;
\r
976 case 1055: ret=1087; break;
\r
977 case 1056: ret=1088; break;
\r
978 case 1057: ret=1089; break;
\r
979 case 1058: ret=1090; break;
\r
980 case 1059: ret=1091; break;
\r
981 case 1060: ret=1092; break;
\r
982 case 1061: ret=1093; break;
\r
983 case 1062: ret=1094; break;
\r
984 case 1063: ret=1095; break;
\r
985 case 1064: ret=1096; break;
\r
986 case 1065: ret=1097; break;
\r
987 case 1066: ret=1098; break;
\r
988 case 1067: ret=1099; break;
\r
989 case 1068: ret=1100; break;
\r
990 case 1069: ret=1101; break;
\r
991 case 1070: ret=1102; break;
\r
992 case 1071: ret=1103; break;
\r
993 case 1120: ret=1121; break;
\r
994 case 1122: ret=1123; break;
\r
995 case 1124: ret=1125; break;
\r
996 case 1126: ret=1127; break;
\r
997 case 1128: ret=1129; break;
\r
998 case 1130: ret=1131; break;
\r
999 case 1132: ret=1133; break;
\r
1000 case 1134: ret=1135; break;
\r
1001 case 1136: ret=1137; break;
\r
1002 case 1138: ret=1139; break;
\r
1003 case 1140: ret=1141; break;
\r
1004 case 1142: ret=1143; break;
\r
1005 case 1144: ret=1145; break;
\r
1006 case 1146: ret=1147; break;
\r
1007 case 1148: ret=1149; break;
\r
1008 case 1150: ret=1151; break;
\r
1009 case 1152: ret=1153; break;
\r
1010 case 1168: ret=1169; break;
\r
1011 case 1170: ret=1171; break;
\r
1012 case 1172: ret=1173; break;
\r
1013 case 1174: ret=1175; break;
\r
1014 case 1176: ret=1177; break;
\r
1015 case 1178: ret=1179; break;
\r
1016 case 1180: ret=1181; break;
\r
1017 case 1182: ret=1183; break;
\r
1018 case 1184: ret=1185; break;
\r
1019 case 1186: ret=1187; break;
\r
1020 case 1188: ret=1189; break;
\r
1021 case 1190: ret=1191; break;
\r
1022 case 1192: ret=1193; break;
\r
1023 case 1194: ret=1195; break;
\r
1024 case 1196: ret=1197; break;
\r
1025 case 1198: ret=1199; break;
\r
1026 case 1200: ret=1201; break;
\r
1027 case 1202: ret=1203; break;
\r
1028 case 1204: ret=1205; break;
\r
1029 case 1206: ret=1207; break;
\r
1030 case 1208: ret=1209; break;
\r
1031 case 1210: ret=1211; break;
\r
1032 case 1212: ret=1213; break;
\r
1033 case 1214: ret=1215; break;
\r
1034 case 1217: ret=1218; break;
\r
1035 case 1219: ret=1220; break;
\r
1036 case 1223: ret=1224; break;
\r
1037 case 1227: ret=1228; break;
\r
1038 case 1232: ret=1233; break;
\r
1039 case 1234: ret=1235; break;
\r
1040 case 1236: ret=1237; break;
\r
1041 case 1238: ret=1239; break;
\r
1042 case 1240: ret=1241; break;
\r
1043 case 1242: ret=1243; break;
\r
1044 case 1244: ret=1245; break;
\r
1045 case 1246: ret=1247; break;
\r
1046 case 1248: ret=1249; break;
\r
1047 case 1250: ret=1251; break;
\r
1048 case 1252: ret=1253; break;
\r
1049 case 1254: ret=1255; break;
\r
1050 case 1256: ret=1257; break;
\r
1051 case 1258: ret=1259; break;
\r
1052 case 1262: ret=1263; break;
\r
1053 case 1264: ret=1265; break;
\r
1054 case 1266: ret=1267; break;
\r
1055 case 1268: ret=1269; break;
\r
1056 case 1272: ret=1273; break;
\r
1057 case 1329: ret=1377; break;
\r
1058 case 1330: ret=1378; break;
\r
1059 case 1331: ret=1379; break;
\r
1060 case 1332: ret=1380; break;
\r
1061 case 1333: ret=1381; break;
\r
1062 case 1334: ret=1382; break;
\r
1063 case 1335: ret=1383; break;
\r
1064 case 1336: ret=1384; break;
\r
1065 case 1337: ret=1385; break;
\r
1066 case 1338: ret=1386; break;
\r
1067 case 1339: ret=1387; break;
\r
1068 case 1340: ret=1388; break;
\r
1069 case 1341: ret=1389; break;
\r
1070 case 1342: ret=1390; break;
\r
1071 case 1343: ret=1391; break;
\r
1072 case 1344: ret=1392; break;
\r
1073 case 1345: ret=1393; break;
\r
1074 case 1346: ret=1394; break;
\r
1075 case 1347: ret=1395; break;
\r
1076 case 1348: ret=1396; break;
\r
1077 case 1349: ret=1397; break;
\r
1078 case 1350: ret=1398; break;
\r
1079 case 1351: ret=1399; break;
\r
1080 case 1352: ret=1400; break;
\r
1081 case 1353: ret=1401; break;
\r
1082 case 1354: ret=1402; break;
\r
1083 case 1355: ret=1403; break;
\r
1084 case 1356: ret=1404; break;
\r
1085 case 1357: ret=1405; break;
\r
1086 case 1358: ret=1406; break;
\r
1087 case 1359: ret=1407; break;
\r
1088 case 1360: ret=1408; break;
\r
1089 case 1361: ret=1409; break;
\r
1090 case 1362: ret=1410; break;
\r
1091 case 1363: ret=1411; break;
\r
1092 case 1364: ret=1412; break;
\r
1093 case 1365: ret=1413; break;
\r
1094 case 1366: ret=1414; break;
\r
1095 case 4256: ret=4304; break;
\r
1096 case 4257: ret=4305; break;
\r
1097 case 4258: ret=4306; break;
\r
1098 case 4259: ret=4307; break;
\r
1099 case 4260: ret=4308; break;
\r
1100 case 4261: ret=4309; break;
\r
1101 case 4262: ret=4310; break;
\r
1102 case 4263: ret=4311; break;
\r
1103 case 4264: ret=4312; break;
\r
1104 case 4265: ret=4313; break;
\r
1105 case 4266: ret=4314; break;
\r
1106 case 4267: ret=4315; break;
\r
1107 case 4268: ret=4316; break;
\r
1108 case 4269: ret=4317; break;
\r
1109 case 4270: ret=4318; break;
\r
1110 case 4271: ret=4319; break;
\r
1111 case 4272: ret=4320; break;
\r
1112 case 4273: ret=4321; break;
\r
1113 case 4274: ret=4322; break;
\r
1114 case 4275: ret=4323; break;
\r
1115 case 4276: ret=4324; break;
\r
1116 case 4277: ret=4325; break;
\r
1117 case 4278: ret=4326; break;
\r
1118 case 4279: ret=4327; break;
\r
1119 case 4280: ret=4328; break;
\r
1120 case 4281: ret=4329; break;
\r
1121 case 4282: ret=4330; break;
\r
1122 case 4283: ret=4331; break;
\r
1123 case 4284: ret=4332; break;
\r
1124 case 4285: ret=4333; break;
\r
1125 case 4286: ret=4334; break;
\r
1126 case 4287: ret=4335; break;
\r
1127 case 4288: ret=4336; break;
\r
1128 case 4289: ret=4337; break;
\r
1129 case 4290: ret=4338; break;
\r
1130 case 4291: ret=4339; break;
\r
1131 case 4292: ret=4340; break;
\r
1132 case 4293: ret=4341; break;
\r
1133 case 7680: ret=7681; break;
\r
1134 case 7682: ret=7683; break;
\r
1135 case 7684: ret=7685; break;
\r
1136 case 7686: ret=7687; break;
\r
1137 case 7688: ret=7689; break;
\r
1138 case 7690: ret=7691; break;
\r
1139 case 7692: ret=7693; break;
\r
1140 case 7694: ret=7695; break;
\r
1141 case 7696: ret=7697; break;
\r
1142 case 7698: ret=7699; break;
\r
1143 case 7700: ret=7701; break;
\r
1144 case 7702: ret=7703; break;
\r
1145 case 7704: ret=7705; break;
\r
1146 case 7706: ret=7707; break;
\r
1147 case 7708: ret=7709; break;
\r
1148 case 7710: ret=7711; break;
\r
1149 case 7712: ret=7713; break;
\r
1150 case 7714: ret=7715; break;
\r
1151 case 7716: ret=7717; break;
\r
1152 case 7718: ret=7719; break;
\r
1153 case 7720: ret=7721; break;
\r
1154 case 7722: ret=7723; break;
\r
1155 case 7724: ret=7725; break;
\r
1156 case 7726: ret=7727; break;
\r
1157 case 7728: ret=7729; break;
\r
1158 case 7730: ret=7731; break;
\r
1159 case 7732: ret=7733; break;
\r
1160 case 7734: ret=7735; break;
\r
1161 case 7736: ret=7737; break;
\r
1162 case 7738: ret=7739; break;
\r
1163 case 7740: ret=7741; break;
\r
1164 case 7742: ret=7743; break;
\r
1165 case 7744: ret=7745; break;
\r
1166 case 7746: ret=7747; break;
\r
1167 case 7748: ret=7749; break;
\r
1168 case 7750: ret=7751; break;
\r
1169 case 7752: ret=7753; break;
\r
1170 case 7754: ret=7755; break;
\r
1171 case 7756: ret=7757; break;
\r
1172 case 7758: ret=7759; break;
\r
1173 case 7760: ret=7761; break;
\r
1174 case 7762: ret=7763; break;
\r
1175 case 7764: ret=7765; break;
\r
1176 case 7766: ret=7767; break;
\r
1177 case 7768: ret=7769; break;
\r
1178 case 7770: ret=7771; break;
\r
1179 case 7772: ret=7773; break;
\r
1180 case 7774: ret=7775; break;
\r
1181 case 7776: ret=7777; break;
\r
1182 case 7778: ret=7779; break;
\r
1183 case 7780: ret=7781; break;
\r
1184 case 7782: ret=7783; break;
\r
1185 case 7784: ret=7785; break;
\r
1186 case 7786: ret=7787; break;
\r
1187 case 7788: ret=7789; break;
\r
1188 case 7790: ret=7791; break;
\r
1189 case 7792: ret=7793; break;
\r
1190 case 7794: ret=7795; break;
\r
1191 case 7796: ret=7797; break;
\r
1192 case 7798: ret=7799; break;
\r
1193 case 7800: ret=7801; break;
\r
1194 case 7802: ret=7803; break;
\r
1195 case 7804: ret=7805; break;
\r
1196 case 7806: ret=7807; break;
\r
1197 case 7808: ret=7809; break;
\r
1198 case 7810: ret=7811; break;
\r
1199 case 7812: ret=7813; break;
\r
1200 case 7814: ret=7815; break;
\r
1201 case 7816: ret=7817; break;
\r
1202 case 7818: ret=7819; break;
\r
1203 case 7820: ret=7821; break;
\r
1204 case 7822: ret=7823; break;
\r
1205 case 7824: ret=7825; break;
\r
1206 case 7826: ret=7827; break;
\r
1207 case 7828: ret=7829; break;
\r
1208 case 7840: ret=7841; break;
\r
1209 case 7842: ret=7843; break;
\r
1210 case 7844: ret=7845; break;
\r
1211 case 7846: ret=7847; break;
\r
1212 case 7848: ret=7849; break;
\r
1213 case 7850: ret=7851; break;
\r
1214 case 7852: ret=7853; break;
\r
1215 case 7854: ret=7855; break;
\r
1216 case 7856: ret=7857; break;
\r
1217 case 7858: ret=7859; break;
\r
1218 case 7860: ret=7861; break;
\r
1219 case 7862: ret=7863; break;
\r
1220 case 7864: ret=7865; break;
\r
1221 case 7866: ret=7867; break;
\r
1222 case 7868: ret=7869; break;
\r
1223 case 7870: ret=7871; break;
\r
1224 case 7872: ret=7873; break;
\r
1225 case 7874: ret=7875; break;
\r
1226 case 7876: ret=7877; break;
\r
1227 case 7878: ret=7879; break;
\r
1228 case 7880: ret=7881; break;
\r
1229 case 7882: ret=7883; break;
\r
1230 case 7884: ret=7885; break;
\r
1231 case 7886: ret=7887; break;
\r
1232 case 7888: ret=7889; break;
\r
1233 case 7890: ret=7891; break;
\r
1234 case 7892: ret=7893; break;
\r
1235 case 7894: ret=7895; break;
\r
1236 case 7896: ret=7897; break;
\r
1237 case 7898: ret=7899; break;
\r
1238 case 7900: ret=7901; break;
\r
1239 case 7902: ret=7903; break;
\r
1240 case 7904: ret=7905; break;
\r
1241 case 7906: ret=7907; break;
\r
1242 case 7908: ret=7909; break;
\r
1243 case 7910: ret=7911; break;
\r
1244 case 7912: ret=7913; break;
\r
1245 case 7914: ret=7915; break;
\r
1246 case 7916: ret=7917; break;
\r
1247 case 7918: ret=7919; break;
\r
1248 case 7920: ret=7921; break;
\r
1249 case 7922: ret=7923; break;
\r
1250 case 7924: ret=7925; break;
\r
1251 case 7926: ret=7927; break;
\r
1252 case 7928: ret=7929; break;
\r
1253 case 7944: ret=7936; break;
\r
1254 case 7945: ret=7937; break;
\r
1255 case 7946: ret=7938; break;
\r
1256 case 7947: ret=7939; break;
\r
1257 case 7948: ret=7940; break;
\r
1258 case 7949: ret=7941; break;
\r
1259 case 7950: ret=7942; break;
\r
1260 case 7951: ret=7943; break;
\r
1261 case 7960: ret=7952; break;
\r
1262 case 7961: ret=7953; break;
\r
1263 case 7962: ret=7954; break;
\r
1264 case 7963: ret=7955; break;
\r
1265 case 7964: ret=7956; break;
\r
1266 case 7965: ret=7957; break;
\r
1267 case 7976: ret=7968; break;
\r
1268 case 7977: ret=7969; break;
\r
1269 case 7978: ret=7970; break;
\r
1270 case 7979: ret=7971; break;
\r
1271 case 7980: ret=7972; break;
\r
1272 case 7981: ret=7973; break;
\r
1273 case 7982: ret=7974; break;
\r
1274 case 7983: ret=7975; break;
\r
1275 case 7992: ret=7984; break;
\r
1276 case 7993: ret=7985; break;
\r
1277 case 7994: ret=7986; break;
\r
1278 case 7995: ret=7987; break;
\r
1279 case 7996: ret=7988; break;
\r
1280 case 7997: ret=7989; break;
\r
1281 case 7998: ret=7990; break;
\r
1282 case 7999: ret=7991; break;
\r
1283 case 8008: ret=8000; break;
\r
1284 case 8009: ret=8001; break;
\r
1285 case 8010: ret=8002; break;
\r
1286 case 8011: ret=8003; break;
\r
1287 case 8012: ret=8004; break;
\r
1288 case 8013: ret=8005; break;
\r
1289 case 8025: ret=8017; break;
\r
1290 case 8027: ret=8019; break;
\r
1291 case 8029: ret=8021; break;
\r
1292 case 8031: ret=8023; break;
\r
1293 case 8040: ret=8032; break;
\r
1294 case 8041: ret=8033; break;
\r
1295 case 8042: ret=8034; break;
\r
1296 case 8043: ret=8035; break;
\r
1297 case 8044: ret=8036; break;
\r
1298 case 8045: ret=8037; break;
\r
1299 case 8046: ret=8038; break;
\r
1300 case 8047: ret=8039; break;
\r
1301 case 8072: ret=8064; break;
\r
1302 case 8073: ret=8065; break;
\r
1303 case 8074: ret=8066; break;
\r
1304 case 8075: ret=8067; break;
\r
1305 case 8076: ret=8068; break;
\r
1306 case 8077: ret=8069; break;
\r
1307 case 8078: ret=8070; break;
\r
1308 case 8079: ret=8071; break;
\r
1309 case 8088: ret=8080; break;
\r
1310 case 8089: ret=8081; break;
\r
1311 case 8090: ret=8082; break;
\r
1312 case 8091: ret=8083; break;
\r
1313 case 8092: ret=8084; break;
\r
1314 case 8093: ret=8085; break;
\r
1315 case 8094: ret=8086; break;
\r
1316 case 8095: ret=8087; break;
\r
1317 case 8104: ret=8096; break;
\r
1318 case 8105: ret=8097; break;
\r
1319 case 8106: ret=8098; break;
\r
1320 case 8107: ret=8099; break;
\r
1321 case 8108: ret=8100; break;
\r
1322 case 8109: ret=8101; break;
\r
1323 case 8110: ret=8102; break;
\r
1324 case 8111: ret=8103; break;
\r
1325 case 8120: ret=8112; break;
\r
1326 case 8121: ret=8113; break;
\r
1327 case 8122: ret=8048; break;
\r
1328 case 8123: ret=8049; break;
\r
1329 case 8124: ret=8115; break;
\r
1330 case 8136: ret=8050; break;
\r
1331 case 8137: ret=8051; break;
\r
1332 case 8138: ret=8052; break;
\r
1333 case 8139: ret=8053; break;
\r
1334 case 8140: ret=8131; break;
\r
1335 case 8152: ret=8144; break;
\r
1336 case 8153: ret=8145; break;
\r
1337 case 8154: ret=8054; break;
\r
1338 case 8155: ret=8055; break;
\r
1339 case 8168: ret=8160; break;
\r
1340 case 8169: ret=8161; break;
\r
1341 case 8170: ret=8058; break;
\r
1342 case 8171: ret=8059; break;
\r
1343 case 8172: ret=8165; break;
\r
1344 case 8184: ret=8056; break;
\r
1345 case 8185: ret=8057; break;
\r
1346 case 8186: ret=8060; break;
\r
1347 case 8187: ret=8061; break;
\r
1348 case 8188: ret=8179; break;
\r
1349 case 8544: ret=8560; break;
\r
1350 case 8545: ret=8561; break;
\r
1351 case 8546: ret=8562; break;
\r
1352 case 8547: ret=8563; break;
\r
1353 case 8548: ret=8564; break;
\r
1354 case 8549: ret=8565; break;
\r
1355 case 8550: ret=8566; break;
\r
1356 case 8551: ret=8567; break;
\r
1357 case 8552: ret=8568; break;
\r
1358 case 8553: ret=8569; break;
\r
1359 case 8554: ret=8570; break;
\r
1360 case 8555: ret=8571; break;
\r
1361 case 8556: ret=8572; break;
\r
1362 case 8557: ret=8573; break;
\r
1363 case 8558: ret=8574; break;
\r
1364 case 8559: ret=8575; break;
\r
1365 case 9398: ret=9424; break;
\r
1366 case 9399: ret=9425; break;
\r
1367 case 9400: ret=9426; break;
\r
1368 case 9401: ret=9427; break;
\r
1369 case 9402: ret=9428; break;
\r
1370 case 9403: ret=9429; break;
\r
1371 case 9404: ret=9430; break;
\r
1372 case 9405: ret=9431; break;
\r
1373 case 9406: ret=9432; break;
\r
1374 case 9407: ret=9433; break;
\r
1375 case 9408: ret=9434; break;
\r
1376 case 9409: ret=9435; break;
\r
1377 case 9410: ret=9436; break;
\r
1378 case 9411: ret=9437; break;
\r
1379 case 9412: ret=9438; break;
\r
1380 case 9413: ret=9439; break;
\r
1381 case 9414: ret=9440; break;
\r
1382 case 9415: ret=9441; break;
\r
1383 case 9416: ret=9442; break;
\r
1384 case 9417: ret=9443; break;
\r
1385 case 9418: ret=9444; break;
\r
1386 case 9419: ret=9445; break;
\r
1387 case 9420: ret=9446; break;
\r
1388 case 9421: ret=9447; break;
\r
1389 case 9422: ret=9448; break;
\r
1390 case 9423: ret=9449; break;
\r
1391 case 65313: ret=65345; break;
\r
1392 case 65314: ret=65346; break;
\r
1393 case 65315: ret=65347; break;
\r
1394 case 65316: ret=65348; break;
\r
1395 case 65317: ret=65349; break;
\r
1396 case 65318: ret=65350; break;
\r
1397 case 65319: ret=65351; break;
\r
1398 case 65320: ret=65352; break;
\r
1399 case 65321: ret=65353; break;
\r
1400 case 65322: ret=65354; break;
\r
1401 case 65323: ret=65355; break;
\r
1402 case 65324: ret=65356; break;
\r
1403 case 65325: ret=65357; break;
\r
1404 case 65326: ret=65358; break;
\r
1405 case 65327: ret=65359; break;
\r
1406 case 65328: ret=65360; break;
\r
1407 case 65329: ret=65361; break;
\r
1408 case 65330: ret=65362; break;
\r
1409 case 65331: ret=65363; break;
\r
1410 case 65332: ret=65364; break;
\r
1411 case 65333: ret=65365; break;
\r
1412 case 65334: ret=65366; break;
\r
1413 case 65335: ret=65367; break;
\r
1414 case 65336: ret=65368; break;
\r
1415 case 65337: ret=65369; break;
\r
1416 case 65338: ret=65370; break;
\r
1420 return Character.toLowerCase(c);
\r
1422 /** Convert a String to title case. */
\r
1423 public static String toTitleCase(String s) {
\r
1424 StringBuffer sb = new StringBuffer();
\r
1425 for(int i=0;i<s.length();i++)
\r
1426 sb.append(CaseMgr.toTitleCase(s.charAt(i)));
\r
1427 return sb.toString();
\r
1429 /** Convert a String to upper case. */
\r
1430 public static String toUpperCase(String s) {
\r
1431 StringBuffer sb = new StringBuffer();
\r
1432 for(int i=0;i<s.length();i++)
\r
1433 sb.append(CaseMgr.toUpperCase(s.charAt(i)));
\r
1434 return sb.toString();
\r
1436 /** Convert a String to lower case. */
\r
1437 public static String toLowerCase(String s) {
\r
1438 StringBuffer sb = new StringBuffer();
\r
1439 for(int i=0;i<s.length();i++)
\r
1440 sb.append(CaseMgr.toLowerCase(s.charAt(i)));
\r
1441 return sb.toString();
\r
1443 /** Convert a character to title case.*/
\r
1444 public static char toTitleCase(char c) {
\r
1446 int ret = (int)toUpperCase(c);
\r
1448 case 452: ret=453; break;
\r
1449 case 453: ret=453; break;
\r
1450 case 454: ret=453; break;
\r
1451 case 455: ret=456; break;
\r
1452 case 456: ret=456; break;
\r
1453 case 457: ret=456; break;
\r
1454 case 458: ret=459; break;
\r
1455 case 459: ret=459; break;
\r
1456 case 460: ret=459; break;
\r
1457 case 497: ret=498; break;
\r
1458 case 498: ret=498; break;
\r
1459 case 499: ret=498; break;
\r
1463 return Character.toTitleCase(c);
\r
1465 /** Duplicates the regionMatches routine of String -- but
\r
1466 makes use of the definitions of upper, lower, and title
\r
1467 case in this class when ignoreCase is set. */
\r
1468 public static boolean regionMatches( StringLike s1,
\r
1469 boolean ign,int i1,StringLike s2,int i2,int i3) {
\r
1471 if(itot>s2.length()||i1+i3>s1.length()) return false;
\r
1473 for(int i=i2;i<itot;i++)
\r
1474 if(s2.charAt(i) != s1.charAt(i1++))
\r
1477 for(int i=i2;i<itot;i++)
\r
1478 if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
1483 /** Duplicates the regionMatches routine of String -- but
\r
1484 makes use of the definitions of upper, lower, and title
\r
1485 case in this class when ignoreCase is set. */
\r
1486 public static boolean regionMatches( String s1,
\r
1487 boolean ign,int i1,StringLike s2,int i2,int i3) {
\r
1489 if(itot>s2.length()||i1+i3>s1.length()) return false;
\r
1491 for(int i=i2;i<itot;i++)
\r
1492 if(s2.charAt(i) != s1.charAt(i1++))
\r
1495 for(int i=i2;i<itot;i++)
\r
1496 if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
1501 /** Duplicates the regionMatches routine of String -- but
\r
1502 makes use of the definitions of upper, lower, and title
\r
1503 case in this class when ignoreCase is set. */
\r
1504 public static boolean regionMatches( StringLike s1,
\r
1505 boolean ign,int i1,String s2,int i2,int i3) {
\r
1507 if(itot>s2.length()||i1+i3>s1.length()) return false;
\r
1509 for(int i=i2;i<itot;i++)
\r
1510 if(s2.charAt(i) != s1.charAt(i1++))
\r
1513 for(int i=i2;i<itot;i++)
\r
1514 if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r
1519 /** Duplicates the regionMatches routine of String -- but
\r
1520 makes use of the definitions of upper, lower, and title
\r
1521 case in this class when ignoreCase is set. */
\r
1522 public static boolean regionMatches( String s1,
\r
1523 boolean ign,int i1,String s2,int i2,int i3) {
\r
1525 if(itot>s2.length()||i1+i3>s1.length()) return false;
\r
1527 for(int i=i2;i<itot;i++)
\r
1528 if(s2.charAt(i) != s1.charAt(i1++))
\r
1531 for(int i=i2;i<itot;i++)
\r
1532 if(toLowerCase(s2.charAt(i)) != toLowerCase(s1.charAt(i1++)))
\r