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