• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* GENERATED SOURCE. DO NOT MODIFY. */
2 // © 2016 and later: Unicode, Inc. and others.
3 // License & terms of use: http://www.unicode.org/copyright.html#License
4 /*
5  *******************************************************************************
6  * Copyright (C) 2009-2010, International Business Machines Corporation and    *
7  * others. All Rights Reserved.                                                *
8  *******************************************************************************
9  */
10 package ohos.global.icu.impl.locale;
11 
12 import ohos.global.icu.impl.Utility;
13 
14 /**
15  * @hide exposed on OHOS
16  */
17 public final class AsciiUtil {
caseIgnoreMatch(String s1, String s2)18     public static boolean caseIgnoreMatch(String s1, String s2) {
19         if (Utility.sameObjects(s1, s2)) {
20             return true;
21         }
22         int len = s1.length();
23         if (len != s2.length()) {
24             return false;
25         }
26         int i = 0;
27         while (i < len) {
28             char c1 = s1.charAt(i);
29             char c2 = s2.charAt(i);
30             if (c1 != c2 && toLower(c1) != toLower(c2)) {
31                 break;
32             }
33             i++;
34         }
35         return (i == len);
36     }
37 
caseIgnoreCompare(String s1, String s2)38     public static int caseIgnoreCompare(String s1, String s2) {
39         if (Utility.sameObjects(s1, s2)) {
40             return 0;
41         }
42         return AsciiUtil.toLowerString(s1).compareTo(AsciiUtil.toLowerString(s2));
43     }
44 
45 
toUpper(char c)46     public static char toUpper(char c) {
47         if (c >= 'a' && c <= 'z') {
48             c -= 0x20;
49         }
50         return c;
51     }
52 
toLower(char c)53     public static char toLower(char c) {
54         if (c >= 'A' && c <= 'Z') {
55             c += 0x20;
56         }
57         return c;
58     }
59 
toLowerString(String s)60     public static String toLowerString(String s) {
61         int idx = 0;
62         for (; idx < s.length(); idx++) {
63             char c = s.charAt(idx);
64             if (c >= 'A' && c <= 'Z') {
65                 break;
66             }
67         }
68         if (idx == s.length()) {
69             return s;
70         }
71         StringBuilder buf = new StringBuilder(s.substring(0, idx));
72         for (; idx < s.length(); idx++) {
73             buf.append(toLower(s.charAt(idx)));
74         }
75         return buf.toString();
76     }
77 
toUpperString(String s)78     public static String toUpperString(String s) {
79         int idx = 0;
80         for (; idx < s.length(); idx++) {
81             char c = s.charAt(idx);
82             if (c >= 'a' && c <= 'z') {
83                 break;
84             }
85         }
86         if (idx == s.length()) {
87             return s;
88         }
89         StringBuilder buf = new StringBuilder(s.substring(0, idx));
90         for (; idx < s.length(); idx++) {
91             buf.append(toUpper(s.charAt(idx)));
92         }
93         return buf.toString();
94     }
95 
toTitleString(String s)96     public static String toTitleString(String s) {
97         if (s.length() == 0) {
98             return s;
99         }
100         int idx = 0;
101         char c = s.charAt(idx);
102         if (!(c >= 'a' && c <= 'z')) {
103             for (idx = 1; idx < s.length(); idx++) {
104                 if (c >= 'A' && c <= 'Z') {
105                     break;
106                 }
107             }
108         }
109         if (idx == s.length()) {
110             return s;
111         }
112         StringBuilder buf = new StringBuilder(s.substring(0, idx));
113         if (idx == 0) {
114             buf.append(toUpper(s.charAt(idx)));
115             idx++;
116         }
117         for (; idx < s.length(); idx++) {
118             buf.append(toLower(s.charAt(idx)));
119         }
120         return buf.toString();
121     }
122 
isAlpha(char c)123     public static boolean isAlpha(char c) {
124         return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z');
125     }
126 
isAlphaString(String s)127     public static boolean isAlphaString(String s) {
128         boolean b = true;
129         for (int i = 0; i < s.length(); i++) {
130             if (!isAlpha(s.charAt(i))) {
131                 b = false;
132                 break;
133             }
134         }
135         return b;
136     }
137 
isNumeric(char c)138     public static boolean isNumeric(char c) {
139         return (c >= '0' && c <= '9');
140     }
141 
isNumericString(String s)142     public static boolean isNumericString(String s) {
143         boolean b = true;
144         for (int i = 0; i < s.length(); i++) {
145             if (!isNumeric(s.charAt(i))) {
146                 b = false;
147                 break;
148             }
149         }
150         return b;
151     }
152 
isAlphaNumeric(char c)153     public static boolean isAlphaNumeric(char c) {
154         return isAlpha(c) || isNumeric(c);
155     }
156 
isAlphaNumericString(String s)157     public static boolean isAlphaNumericString(String s) {
158         boolean b = true;
159         for (int i = 0; i < s.length(); i++) {
160             if (!isAlphaNumeric(s.charAt(i))) {
161                 b = false;
162                 break;
163             }
164         }
165         return b;
166     }
167 
168     /**
169      * @hide exposed on OHOS
170      */
171     public static class CaseInsensitiveKey {
172         private String _key;
173         private int _hash;
174 
CaseInsensitiveKey(String key)175         public CaseInsensitiveKey(String key) {
176             _key = key;
177             _hash = AsciiUtil.toLowerString(key).hashCode();
178         }
179 
180         @Override
equals(Object o)181         public boolean equals(Object o) {
182             if (this == o) {
183                 return true;
184             }
185             if (o instanceof CaseInsensitiveKey) {
186                 return AsciiUtil.caseIgnoreMatch(_key, ((CaseInsensitiveKey)o)._key);
187             }
188             return false;
189         }
190 
191         @Override
hashCode()192         public int hashCode() {
193             return _hash;
194         }
195     }
196 }
197