1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.api.util;
21
22
23
24
25
26
27
28 public final class Chars
29 {
30
31 public static final boolean[] ALPHA =
32 {
33 false, false, false, false, false, false, false, false,
34 false, false, false, false, false, false, false, false,
35 false, false, false, false, false, false, false, false,
36 false, false, false, false, false, false, false, false,
37 false, false, false, false, false, false, false, false,
38 false, false, false, false, false, false, false, false,
39 false, false, false, false, false, false, false, false,
40 false, false, false, false, false, false, false, false,
41 false, true, true, true, true, true, true, true,
42 true, true, true, true, true, true, true, true,
43 true, true, true, true, true, true, true, true,
44 true, true, true, false, false, false, false, false,
45 false, true, true, true, true, true, true, true,
46 true, true, true, true, true, true, true, true,
47 true, true, true, true, true, true, true, true,
48 true, true, true, false, false, false, false, false
49 };
50
51 public static final boolean[] ALPHA_LOWER_CASE =
52 {
53 false, false, false, false, false, false, false, false,
54 false, false, false, false, false, false, false, false,
55 false, false, false, false, false, false, false, false,
56 false, false, false, false, false, false, false, false,
57 false, false, false, false, false, false, false, false,
58 false, false, false, false, false, false, false, false,
59 false, false, false, false, false, false, false, false,
60 false, false, false, false, false, false, false, false,
61 false, false, false, false, false, false, false, false,
62 false, false, false, false, false, false, false, false,
63 false, false, false, false, false, false, false, false,
64 false, false, false, false, false, false, false, false,
65 false, true, true, true, true, true, true, true,
66 true, true, true, true, true, true, true, true,
67 true, true, true, true, true, true, true, true,
68 true, true, true, false, false, false, false, false
69 };
70
71 public static final boolean[] ALPHA_UPPER_CASE =
72 {
73 false, false, false, false, false, false, false, false,
74 false, false, false, false, false, false, false, false,
75 false, false, false, false, false, false, false, false,
76 false, false, false, false, false, false, false, false,
77 false, false, false, false, false, false, false, false,
78 false, false, false, false, false, false, false, false,
79 false, false, false, false, false, false, false, false,
80 false, false, false, false, false, false, false, false,
81 false, true, true, true, true, true, true, true,
82 true, true, true, true, true, true, true, true,
83 true, true, true, true, true, true, true, true,
84 true, true, true, false, false, false, false, false,
85 false, false, false, false, false, false, false, false,
86 false, false, false, false, false, false, false, false,
87 false, false, false, false, false, false, false, false,
88 false, false, false, false, false, false, false, false,
89 };
90
91 public static final boolean[] ALPHA_DIGIT =
92 {
93 false, false, false, false, false, false, false, false,
94 false, false, false, false, false, false, false, false,
95 false, false, false, false, false, false, false, false,
96 false, false, false, false, false, false, false, false,
97 false, false, false, false, false, false, false, false,
98 false, false, false, false, false, false, false, false,
99 true, true, true, true, true, true, true, true,
100 true, true, false, false, false, false, false, false,
101 false, true, true, true, true, true, true, true,
102 true, true, true, true, true, true, true, true,
103 true, true, true, true, true, true, true, true,
104 true, true, true, false, false, false, false, false,
105 false, true, true, true, true, true, true, true,
106 true, true, true, true, true, true, true, true,
107 true, true, true, true, true, true, true, true,
108 true, true, true, false, false, false, false, false
109 };
110
111 public static final boolean[] CHAR =
112 {
113 false, false, false, false, false, false, false, false,
114 false, false, false, false, false, false, false, false,
115 false, false, false, false, false, false, false, false,
116 false, false, false, false, false, false, false, false,
117 false, false, false, false, false, false, false, false,
118 false, false, false, false, false, true, false, false,
119 true, true, true, true, true, true, true, true,
120 true, true, false, false, false, false, false, false,
121 false, true, true, true, true, true, true, true,
122 true, true, true, true, true, true, true, true,
123 true, true, true, true, true, true, true, true,
124 true, true, true, false, false, false, false, false,
125 false, true, true, true, true, true, true, true,
126 true, true, true, true, true, true, true, true,
127 true, true, true, true, true, true, true, true,
128 true, true, true, false, false, false, false, false
129 };
130
131 public static final boolean[] DIGIT =
132 {
133 false, false, false, false, false, false, false, false,
134 false, false, false, false, false, false, false, false,
135 false, false, false, false, false, false, false, false,
136 false, false, false, false, false, false, false, false,
137 false, false, false, false, false, false, false, false,
138 false, false, false, false, false, false, false, false,
139 true, true, true, true, true, true, true, true,
140 true, true, false, false, false, false, false, false,
141 false, false, false, false, false, false, false, false,
142 false, false, false, false, false, false, false, false,
143 false, false, false, false, false, false, false, false,
144 false, false, false, false, false, false, false, false,
145 false, false, false, false, false, false, false, false,
146 false, false, false, false, false, false, false, false,
147 false, false, false, false, false, false, false, false,
148 false, false, false, false, false, false, false, false
149 };
150
151 public static final boolean[] HEX =
152 {
153 false, false, false, false, false, false, false, false,
154 false, false, false, false, false, false, false, false,
155 false, false, false, false, false, false, false, false,
156 false, false, false, false, false, false, false, false,
157 false, false, false, false, false, false, false, false,
158 false, false, false, false, false, false, false, false,
159 true, true, true, true, true, true, true, true,
160 true, true, false, false, false, false, false, false,
161 false, true, true, true, true, true, true, false,
162 false, false, false, false, false, false, false, false,
163 false, false, false, false, false, false, false, false,
164 false, false, false, false, false, false, false, false,
165 false, true, true, true, true, true, true, false,
166 false, false, false, false, false, false, false, false,
167 false, false, false, false, false, false, false, false,
168 false, false, false, false, false, false, false, false };
169
170
171
172
173
174
175
176
177
178
179
180 public static boolean isCharASCII( char[] chars, int index, char car )
181 {
182 if ( ( chars == null ) || ( chars.length == 0 ) || ( index < 0 ) || ( index >= chars.length ) )
183 {
184 return false;
185 }
186 else
187 {
188 return ( ( chars[index] == car ) ? true : false );
189 }
190 }
191
192
193
194
195
196
197
198
199
200
201
202
203 public static boolean isCharASCII( String string, int index, char car )
204 {
205 if ( string == null )
206 {
207 return false;
208 }
209
210 int length = string.length();
211
212 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
213 {
214 return false;
215 }
216 else
217 {
218 return string.charAt( index ) == car;
219 }
220 }
221
222
223
224
225
226
227
228
229
230
231
232
233 public static boolean isICharASCII( String string, int index, char car )
234 {
235 if ( string == null )
236 {
237 return false;
238 }
239
240 int length = string.length();
241
242 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
243 {
244 return false;
245 }
246 else
247 {
248 return ( ( string.charAt( index ) | 0x20 ) & car ) == car;
249 }
250 }
251
252
253
254
255
256
257
258
259
260
261
262
263 public static boolean isICharASCII( byte[] bytes, int index, char car )
264 {
265 if ( bytes == null )
266 {
267 return false;
268 }
269
270 int length = bytes.length;
271
272 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
273 {
274 return false;
275 }
276 else
277 {
278 return ( ( bytes[index] | 0x20 ) & car ) == car;
279 }
280 }
281
282
283
284
285
286
287
288
289
290
291
292 public static boolean isAlpha( byte c )
293 {
294 return ( ( c > 0 ) && ( c <= 127 ) && ALPHA[c] );
295 }
296
297
298
299
300
301
302
303
304
305
306
307 public static boolean isAlpha( char c )
308 {
309 return ( ( c > 0 ) && ( c <= 127 ) && ALPHA[c] );
310 }
311
312
313
314
315
316
317
318
319
320
321
322 public static boolean isAlphaASCII( byte[] bytes, int index )
323 {
324 if ( ( bytes == null ) || ( bytes.length == 0 ) || ( index < 0 ) || ( index >= bytes.length ) )
325 {
326 return false;
327 }
328 else
329 {
330 byte c = bytes[index];
331
332 if ( ( ( c | 0x7F ) != 0x7F ) || !ALPHA[c] )
333 {
334 return false;
335 }
336 else
337 {
338 return true;
339 }
340 }
341 }
342
343
344
345
346
347
348
349
350
351
352
353 public static boolean isAlphaASCII( char[] chars, int index )
354 {
355 if ( ( chars == null ) || ( chars.length == 0 ) || ( index < 0 ) || ( index >= chars.length ) )
356 {
357 return false;
358 }
359 else
360 {
361 char c = chars[index];
362
363 if ( ( c > 127 ) || !ALPHA[c] )
364 {
365 return false;
366 }
367 else
368 {
369 return true;
370 }
371 }
372 }
373
374
375
376
377
378
379
380
381
382
383
384 public static boolean isAlphaASCII( String string, int index )
385 {
386 if ( string == null )
387 {
388 return false;
389 }
390
391 int length = string.length();
392
393 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
394 {
395 return false;
396 }
397 else
398 {
399 char c = string.charAt( index );
400
401 if ( ( c > 127 ) || !ALPHA[c] )
402 {
403 return false;
404 }
405 else
406 {
407 return true;
408 }
409 }
410 }
411
412
413
414
415
416
417
418
419
420
421
422 public static boolean isAlphaLowercaseASCII( String string, int index )
423 {
424 if ( string == null )
425 {
426 return false;
427 }
428
429 int length = string.length();
430
431 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
432 {
433 return false;
434 }
435 else
436 {
437 char c = string.charAt( index );
438
439 if ( ( c > 127 ) || !ALPHA_LOWER_CASE[c] )
440 {
441 return false;
442 }
443 else
444 {
445 return true;
446 }
447 }
448 }
449
450
451
452
453
454
455
456
457
458
459
460 public static boolean isAlphaUppercaseASCII( String string, int index )
461 {
462 if ( string == null )
463 {
464 return false;
465 }
466
467 int length = string.length();
468
469 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
470 {
471 return false;
472 }
473 else
474 {
475 char c = string.charAt( index );
476
477 if ( ( c > 127 ) || !ALPHA_UPPER_CASE[c] )
478 {
479 return false;
480 }
481 else
482 {
483 return true;
484 }
485 }
486 }
487
488
489
490
491
492
493
494
495
496
497
498 public static boolean isAlphaDigit( String string, int index )
499 {
500 if ( string == null )
501 {
502 return false;
503 }
504
505 int length = string.length();
506
507 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
508 {
509 return false;
510 }
511 else
512 {
513 char c = string.charAt( index );
514
515 if ( ( c > 127 ) || !ALPHA_DIGIT[c] )
516 {
517 return false;
518 }
519 else
520 {
521 return true;
522 }
523 }
524 }
525
526
527
528
529
530
531
532
533
534
535 public static boolean isAlphaDigitMinus( byte[] bytes, int index )
536 {
537 if ( ( bytes == null ) || ( bytes.length == 0 ) || ( index < 0 ) || ( index >= bytes.length ) )
538 {
539 return false;
540 }
541 else
542 {
543 byte c = bytes[index];
544
545 if ( ( ( c | 0x7F ) != 0x7F ) || !CHAR[c] )
546 {
547 return false;
548 }
549 else
550 {
551 return true;
552 }
553 }
554 }
555
556
557
558
559
560
561
562
563
564
565 public static boolean isAlphaDigitMinus( char[] chars, int index )
566 {
567 if ( ( chars == null ) || ( chars.length == 0 ) || ( index < 0 ) || ( index >= chars.length ) )
568 {
569 return false;
570 }
571 else
572 {
573 char c = chars[index];
574
575 if ( ( c > 127 ) || !CHAR[c] )
576 {
577 return false;
578 }
579 else
580 {
581 return true;
582 }
583 }
584 }
585
586
587
588
589
590
591
592
593
594
595 public static boolean isAlphaDigitMinus( String string, int index )
596 {
597 if ( string == null )
598 {
599 return false;
600 }
601
602 int length = string.length();
603
604 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
605 {
606 return false;
607 }
608 else
609 {
610 char c = string.charAt( index );
611
612 if ( ( c > 127 ) || !CHAR[c] )
613 {
614 return false;
615 }
616 else
617 {
618 return true;
619 }
620 }
621 }
622
623
624
625
626
627
628
629
630
631 public static boolean isAlphaDigitMinus( char c )
632 {
633 return ( ( c & 0x007F ) == c ) && CHAR[c];
634 }
635
636
637
638
639
640
641
642
643
644
645
646 public static boolean isBit( String string, int index )
647 {
648 if ( string == null )
649 {
650 return false;
651 }
652
653 int length = string.length();
654
655 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
656 {
657 return false;
658 }
659 else
660 {
661 char c = string.charAt( index );
662 return ( ( c == '0' ) || ( c == '1' ) );
663 }
664 }
665
666
667
668
669
670
671
672
673
674 public static boolean isDigit( byte[] bytes )
675 {
676 if ( ( bytes == null ) || ( bytes.length == 0 ) )
677 {
678 return false;
679 }
680 else
681 {
682 return ( ( ( ( bytes[0] | 0x7F ) != 0x7F ) || !DIGIT[bytes[0]] ) ? false : true );
683 }
684 }
685
686
687
688
689
690
691
692
693
694
695 public static boolean isDigit( char car )
696 {
697 return ( car >= '0' ) && ( car <= '9' );
698 }
699
700
701
702
703
704
705
706
707
708
709 public static boolean isDigit( byte car )
710 {
711 return ( car >= '0' ) && ( car <= '9' );
712 }
713
714
715
716
717
718
719
720
721
722
723 public static boolean isDigit( byte[] bytes, int index )
724 {
725 if ( ( bytes == null ) || ( bytes.length == 0 ) || ( index < 0 ) || ( index >= bytes.length ) )
726 {
727 return false;
728 }
729 else
730 {
731 return ( ( ( ( bytes[index] | 0x7F ) != 0x7F ) || !DIGIT[bytes[index]] ) ? false : true );
732 }
733 }
734
735
736
737
738
739
740
741
742
743
744 public static boolean isDigit( char[] chars, int index )
745 {
746 if ( ( chars == null ) || ( chars.length == 0 ) || ( index < 0 ) || ( index >= chars.length ) )
747 {
748 return false;
749 }
750 else
751 {
752 return ( ( ( chars[index] > 127 ) || !DIGIT[chars[index]] ) ? false : true );
753 }
754 }
755
756
757
758
759
760
761
762
763
764
765 public static boolean isDigit( String string, int index )
766 {
767 if ( string == null )
768 {
769 return false;
770 }
771
772 int length = string.length();
773
774 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
775 {
776 return false;
777 }
778 else
779 {
780 char c = string.charAt( index );
781 return ( ( ( c > 127 ) || !DIGIT[c] ) ? false : true );
782 }
783 }
784
785
786
787
788
789
790
791
792
793 public static boolean isDigit( char[] chars )
794 {
795 if ( ( chars == null ) || ( chars.length == 0 ) )
796 {
797 return false;
798 }
799 else
800 {
801 return ( ( ( chars[0] > 127 ) || !DIGIT[chars[0]] ) ? false : true );
802 }
803 }
804
805
806
807
808
809
810
811
812
813 public static boolean isHex( char c )
814 {
815 return ( ( c | 0x007F ) == 0x007F ) && HEX[c];
816 }
817
818
819
820
821
822
823
824
825
826 public static boolean isHex( byte b )
827 {
828 return ( ( b | 0x7F ) == 0x7F ) && HEX[b];
829 }
830
831
832
833
834
835
836
837
838
839
840 public static boolean isHex( byte[] bytes, int index )
841 {
842 if ( ( bytes == null ) || ( bytes.length == 0 ) || ( index < 0 ) || ( index >= bytes.length ) )
843 {
844 return false;
845 }
846 else
847 {
848 byte c = bytes[index];
849
850 return ( ( ( c | 0x7F ) == 0x7F ) && HEX[c] );
851 }
852 }
853
854
855
856
857
858
859
860
861
862
863 public static boolean isHex( char[] chars, int index )
864 {
865 if ( ( chars == null ) || ( chars.length == 0 ) || ( index < 0 ) || ( index >= chars.length ) )
866 {
867 return false;
868 }
869 else
870 {
871 char c = chars[index];
872
873 return ( ( ( c | 0x007F ) == 0x007F ) && HEX[c] );
874 }
875 }
876
877
878
879
880
881
882
883
884
885
886 public static boolean isHex( String string, int index )
887 {
888 if ( string == null )
889 {
890 return false;
891 }
892
893 int length = string.length();
894
895 if ( ( length == 0 ) || ( index < 0 ) || ( index >= length ) )
896 {
897 return false;
898 }
899 else
900 {
901 char c = string.charAt( index );
902
903 return ( ( ( c | 0x007F ) == 0x007F ) && HEX[c] );
904 }
905 }
906
907
908
909
910
911
912
913
914
915 public static boolean isUnderscore( byte[] bytes, int index )
916 {
917 if ( ( bytes == null ) || ( bytes.length == 0 ) || ( index < 0 ) || ( index >= bytes.length ) )
918 {
919 return false;
920 }
921 else
922 {
923 byte c = bytes[index];
924
925 return c == 0x5F;
926 }
927 }
928
929 }