| OLD | NEW |
| (Empty) |
| 1 /* | |
| 2 * Simplified by Andrey Novikov for AdBlock Plus | |
| 3 */ | |
| 4 | |
| 5 /* | |
| 6 * Licensed to the Apache Software Foundation (ASF) under one or more | |
| 7 * contributor license agreements. See the NOTICE file distributed with | |
| 8 * this work for additional information regarding copyright ownership. | |
| 9 * The ASF licenses this file to You under the Apache License, Version 2.0 | |
| 10 * (the "License"); you may not use this file except in compliance with | |
| 11 * the License. You may obtain a copy of the License at | |
| 12 * | |
| 13 * http://www.apache.org/licenses/LICENSE-2.0 | |
| 14 * | |
| 15 * Unless required by applicable law or agreed to in writing, software | |
| 16 * distributed under the License is distributed on an "AS IS" BASIS, | |
| 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 18 * See the License for the specific language governing permissions and | |
| 19 * limitations under the License. | |
| 20 */ | |
| 21 package org.apache.commons.lang; | |
| 22 | |
| 23 /** | |
| 24 * <p>Operations on char primitives and Character objects.</p> | |
| 25 * | |
| 26 * <p>This class tries to handle <code>null</code> input gracefully. | |
| 27 * An exception will not be thrown for a <code>null</code> input. | |
| 28 * Each method documents its behaviour in more detail.</p> | |
| 29 * | |
| 30 * @author Stephen Colebourne | |
| 31 * @since 2.1 | |
| 32 * @version $Id: CharUtils.java 437554 2006-08-28 06:21:41Z bayard $ | |
| 33 */ | |
| 34 public class CharUtils | |
| 35 { | |
| 36 private static final String CHAR_STRING = | |
| 37 "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007" + | |
| 38 "\b\t\n\u000b\f\r\u000e\u000f" + | |
| 39 "\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017" + | |
| 40 "\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f" + | |
| 41 "\u0020\u0021\"\u0023\u0024\u0025\u0026\u0027" + | |
| 42 "\u0028\u0029\u002a\u002b\u002c\u002d\u002e\u002f" + | |
| 43 "\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037" + | |
| 44 "\u0038\u0039\u003a\u003b\u003c\u003d\u003e\u003f" + | |
| 45 "\u0040\u0041\u0042\u0043\u0044\u0045\u0046\u0047" + | |
| 46 "\u0048\u0049\u004a\u004b\u004c\u004d\u004e\u004f" + | |
| 47 "\u0050\u0051\u0052\u0053\u0054\u0055\u0056\u0057" + | |
| 48 "\u0058\u0059\u005a\u005b\\\u005d\u005e\u005f" + | |
| 49 "\u0060\u0061\u0062\u0063\u0064\u0065\u0066\u0067" + | |
| 50 "\u0068\u0069\u006a\u006b\u006c\u006d\u006e\u006f" + | |
| 51 "\u0070\u0071\u0072\u0073\u0074\u0075\u0076\u0077" + | |
| 52 "\u0078\u0079\u007a\u007b\u007c\u007d\u007e\u007f"; | |
| 53 | |
| 54 private static final String[] CHAR_STRING_ARRAY = new String[128]; | |
| 55 private static final Character[] CHAR_ARRAY = new Character[128]; | |
| 56 | |
| 57 /** | |
| 58 * <code>\u000a</code> linefeed LF ('\n'). | |
| 59 * | |
| 60 * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical
.html#101089">JLF: Escape Sequences | |
| 61 * for Character and String Literals</a> | |
| 62 * @since 2.2 | |
| 63 */ | |
| 64 public static final char LF = '\n'; | |
| 65 | |
| 66 /** | |
| 67 * <code>\u000d</code> carriage return CR ('\r'). | |
| 68 * | |
| 69 * @see <a href="http://java.sun.com/docs/books/jls/third_edition/html/lexical
.html#101089">JLF: Escape Sequences | |
| 70 * for Character and String Literals</a> | |
| 71 * @since 2.2 | |
| 72 */ | |
| 73 public static final char CR = '\r'; | |
| 74 | |
| 75 static | |
| 76 { | |
| 77 for (int i = 127; i >= 0; i--) | |
| 78 { | |
| 79 CHAR_STRING_ARRAY[i] = CHAR_STRING.substring(i, i + 1); | |
| 80 CHAR_ARRAY[i] = new Character((char) i); | |
| 81 } | |
| 82 } | |
| 83 | |
| 84 /** | |
| 85 * <p><code>CharUtils</code> instances should NOT be constructed in standard p
rogramming. | |
| 86 * Instead, the class should be used as <code>CharUtils.toString('c');</code>.
</p> | |
| 87 * | |
| 88 * <p>This constructor is public to permit tools that require a JavaBean insta
nce | |
| 89 * to operate.</p> | |
| 90 */ | |
| 91 public CharUtils() | |
| 92 { | |
| 93 super(); | |
| 94 } | |
| 95 | |
| 96 //----------------------------------------------------------------------- | |
| 97 | |
| 98 /** | |
| 99 * <p>Converts the character to a Character.</p> | |
| 100 * | |
| 101 * <p>For ASCII 7 bit characters, this uses a cache that will return the | |
| 102 * same Character object each time.</p> | |
| 103 * | |
| 104 * <pre> | |
| 105 * CharUtils.toCharacterObject(' ') = ' ' | |
| 106 * CharUtils.toCharacterObject('A') = 'A' | |
| 107 * </pre> | |
| 108 * | |
| 109 * @param ch the character to convert | |
| 110 * @return a Character of the specified character | |
| 111 */ | |
| 112 public static Character toCharacterObject(char ch) | |
| 113 { | |
| 114 if (ch < CHAR_ARRAY.length) | |
| 115 { | |
| 116 return CHAR_ARRAY[ch]; | |
| 117 } | |
| 118 return new Character(ch); | |
| 119 } | |
| 120 | |
| 121 /** | |
| 122 * <p>Converts the String to a Character using the first character, returning | |
| 123 * null for empty Strings.</p> | |
| 124 * | |
| 125 * <p>For ASCII 7 bit characters, this uses a cache that will return the | |
| 126 * same Character object each time.</p> | |
| 127 * | |
| 128 * <pre> | |
| 129 * CharUtils.toCharacterObject(null) = null | |
| 130 * CharUtils.toCharacterObject("") = null | |
| 131 * CharUtils.toCharacterObject("A") = 'A' | |
| 132 * CharUtils.toCharacterObject("BA") = 'B' | |
| 133 * </pre> | |
| 134 * | |
| 135 * @param str the character to convert | |
| 136 * @return the Character value of the first letter of the String | |
| 137 */ | |
| 138 public static Character toCharacterObject(String str) | |
| 139 { | |
| 140 if (StringUtils.isEmpty(str)) | |
| 141 { | |
| 142 return null; | |
| 143 } | |
| 144 return toCharacterObject(str.charAt(0)); | |
| 145 } | |
| 146 | |
| 147 //----------------------------------------------------------------------- | |
| 148 | |
| 149 /** | |
| 150 * <p>Converts the Character to a char throwing an exception for <code>null</c
ode>.</p> | |
| 151 * | |
| 152 * <pre> | |
| 153 * CharUtils.toChar(null) = IllegalArgumentException | |
| 154 * CharUtils.toChar(' ') = ' ' | |
| 155 * CharUtils.toChar('A') = 'A' | |
| 156 * </pre> | |
| 157 * | |
| 158 * @param ch the character to convert | |
| 159 * @return the char value of the Character | |
| 160 * @throws IllegalArgumentException if the Character is null | |
| 161 */ | |
| 162 public static char toChar(Character ch) | |
| 163 { | |
| 164 if (ch == null) | |
| 165 { | |
| 166 throw new IllegalArgumentException("The Character must not be null"); | |
| 167 } | |
| 168 return ch.charValue(); | |
| 169 } | |
| 170 | |
| 171 /** | |
| 172 * <p>Converts the Character to a char handling <code>null</code>.</p> | |
| 173 * | |
| 174 * <pre> | |
| 175 * CharUtils.toChar(null, 'X') = 'X' | |
| 176 * CharUtils.toChar(' ', 'X') = ' ' | |
| 177 * CharUtils.toChar('A', 'X') = 'A' | |
| 178 * </pre> | |
| 179 * | |
| 180 * @param ch the character to convert | |
| 181 * @param defaultValue the value to use if the Character is null | |
| 182 * @return the char value of the Character or the default if null | |
| 183 */ | |
| 184 public static char toChar(Character ch, char defaultValue) | |
| 185 { | |
| 186 if (ch == null) | |
| 187 { | |
| 188 return defaultValue; | |
| 189 } | |
| 190 return ch.charValue(); | |
| 191 } | |
| 192 | |
| 193 //----------------------------------------------------------------------- | |
| 194 | |
| 195 /** | |
| 196 * <p>Converts the String to a char using the first character, throwing | |
| 197 * an exception on empty Strings.</p> | |
| 198 * | |
| 199 * <pre> | |
| 200 * CharUtils.toChar(null) = IllegalArgumentException | |
| 201 * CharUtils.toChar("") = IllegalArgumentException | |
| 202 * CharUtils.toChar("A") = 'A' | |
| 203 * CharUtils.toChar("BA") = 'B' | |
| 204 * </pre> | |
| 205 * | |
| 206 * @param str the character to convert | |
| 207 * @return the char value of the first letter of the String | |
| 208 * @throws IllegalArgumentException if the String is empty | |
| 209 */ | |
| 210 public static char toChar(String str) | |
| 211 { | |
| 212 if (StringUtils.isEmpty(str)) | |
| 213 { | |
| 214 throw new IllegalArgumentException("The String must not be empty"); | |
| 215 } | |
| 216 return str.charAt(0); | |
| 217 } | |
| 218 | |
| 219 /** | |
| 220 * <p>Converts the String to a char using the first character, defaulting | |
| 221 * the value on empty Strings.</p> | |
| 222 * | |
| 223 * <pre> | |
| 224 * CharUtils.toChar(null, 'X') = 'X' | |
| 225 * CharUtils.toChar("", 'X') = 'X' | |
| 226 * CharUtils.toChar("A", 'X') = 'A' | |
| 227 * CharUtils.toChar("BA", 'X') = 'B' | |
| 228 * </pre> | |
| 229 * | |
| 230 * @param str the character to convert | |
| 231 * @param defaultValue the value to use if the Character is null | |
| 232 * @return the char value of the first letter of the String or the default if
null | |
| 233 */ | |
| 234 public static char toChar(String str, char defaultValue) | |
| 235 { | |
| 236 if (StringUtils.isEmpty(str)) | |
| 237 { | |
| 238 return defaultValue; | |
| 239 } | |
| 240 return str.charAt(0); | |
| 241 } | |
| 242 | |
| 243 //----------------------------------------------------------------------- | |
| 244 | |
| 245 /** | |
| 246 * <p>Converts the character to the Integer it represents, throwing an | |
| 247 * exception if the character is not numeric.</p> | |
| 248 * | |
| 249 * <p>This method coverts the char '1' to the int 1 and so on.</p> | |
| 250 * | |
| 251 * <pre> | |
| 252 * CharUtils.toIntValue('3') = 3 | |
| 253 * CharUtils.toIntValue('A') = IllegalArgumentException | |
| 254 * </pre> | |
| 255 * | |
| 256 * @param ch the character to convert | |
| 257 * @return the int value of the character | |
| 258 * @throws IllegalArgumentException if the character is not ASCII numeric | |
| 259 */ | |
| 260 public static int toIntValue(char ch) | |
| 261 { | |
| 262 if (isAsciiNumeric(ch) == false) | |
| 263 { | |
| 264 throw new IllegalArgumentException("The character " + ch + " is not in the
range '0' - '9'"); | |
| 265 } | |
| 266 return ch - 48; | |
| 267 } | |
| 268 | |
| 269 /** | |
| 270 * <p>Converts the character to the Integer it represents, throwing an | |
| 271 * exception if the character is not numeric.</p> | |
| 272 * | |
| 273 * <p>This method coverts the char '1' to the int 1 and so on.</p> | |
| 274 * | |
| 275 * <pre> | |
| 276 * CharUtils.toIntValue('3', -1) = 3 | |
| 277 * CharUtils.toIntValue('A', -1) = -1 | |
| 278 * </pre> | |
| 279 * | |
| 280 * @param ch the character to convert | |
| 281 * @param defaultValue the default value to use if the character is not numeri
c | |
| 282 * @return the int value of the character | |
| 283 */ | |
| 284 public static int toIntValue(char ch, int defaultValue) | |
| 285 { | |
| 286 if (isAsciiNumeric(ch) == false) | |
| 287 { | |
| 288 return defaultValue; | |
| 289 } | |
| 290 return ch - 48; | |
| 291 } | |
| 292 | |
| 293 /** | |
| 294 * <p>Converts the character to the Integer it represents, throwing an | |
| 295 * exception if the character is not numeric.</p> | |
| 296 * | |
| 297 * <p>This method coverts the char '1' to the int 1 and so on.</p> | |
| 298 * | |
| 299 * <pre> | |
| 300 * CharUtils.toIntValue(null) = IllegalArgumentException | |
| 301 * CharUtils.toIntValue('3') = 3 | |
| 302 * CharUtils.toIntValue('A') = IllegalArgumentException | |
| 303 * </pre> | |
| 304 * | |
| 305 * @param ch the character to convert, not null | |
| 306 * @return the int value of the character | |
| 307 * @throws IllegalArgumentException if the Character is not ASCII numeric or i
s null | |
| 308 */ | |
| 309 public static int toIntValue(Character ch) | |
| 310 { | |
| 311 if (ch == null) | |
| 312 { | |
| 313 throw new IllegalArgumentException("The character must not be null"); | |
| 314 } | |
| 315 return toIntValue(ch.charValue()); | |
| 316 } | |
| 317 | |
| 318 /** | |
| 319 * <p>Converts the character to the Integer it represents, throwing an | |
| 320 * exception if the character is not numeric.</p> | |
| 321 * | |
| 322 * <p>This method coverts the char '1' to the int 1 and so on.</p> | |
| 323 * | |
| 324 * <pre> | |
| 325 * CharUtils.toIntValue(null, -1) = -1 | |
| 326 * CharUtils.toIntValue('3', -1) = 3 | |
| 327 * CharUtils.toIntValue('A', -1) = -1 | |
| 328 * </pre> | |
| 329 * | |
| 330 * @param ch the character to convert | |
| 331 * @param defaultValue the default value to use if the character is not numeri
c | |
| 332 * @return the int value of the character | |
| 333 */ | |
| 334 public static int toIntValue(Character ch, int defaultValue) | |
| 335 { | |
| 336 if (ch == null) | |
| 337 { | |
| 338 return defaultValue; | |
| 339 } | |
| 340 return toIntValue(ch.charValue(), defaultValue); | |
| 341 } | |
| 342 | |
| 343 //----------------------------------------------------------------------- | |
| 344 | |
| 345 /** | |
| 346 * <p>Converts the character to a String that contains the one character.</p> | |
| 347 * | |
| 348 * <p>For ASCII 7 bit characters, this uses a cache that will return the | |
| 349 * same String object each time.</p> | |
| 350 * | |
| 351 * <pre> | |
| 352 * CharUtils.toString(' ') = " " | |
| 353 * CharUtils.toString('A') = "A" | |
| 354 * </pre> | |
| 355 * | |
| 356 * @param ch the character to convert | |
| 357 * @return a String containing the one specified character | |
| 358 */ | |
| 359 public static String toString(char ch) | |
| 360 { | |
| 361 if (ch < 128) | |
| 362 { | |
| 363 return CHAR_STRING_ARRAY[ch]; | |
| 364 } | |
| 365 return new String(new char[]{ch}); | |
| 366 } | |
| 367 | |
| 368 /** | |
| 369 * <p>Converts the character to a String that contains the one character.</p> | |
| 370 * | |
| 371 * <p>For ASCII 7 bit characters, this uses a cache that will return the | |
| 372 * same String object each time.</p> | |
| 373 * | |
| 374 * <p>If <code>null</code> is passed in, <code>null</code> will be returned.</
p> | |
| 375 * | |
| 376 * <pre> | |
| 377 * CharUtils.toString(null) = null | |
| 378 * CharUtils.toString(' ') = " " | |
| 379 * CharUtils.toString('A') = "A" | |
| 380 * </pre> | |
| 381 * | |
| 382 * @param ch the character to convert | |
| 383 * @return a String containing the one specified character | |
| 384 */ | |
| 385 public static String toString(Character ch) | |
| 386 { | |
| 387 if (ch == null) | |
| 388 { | |
| 389 return null; | |
| 390 } | |
| 391 return toString(ch.charValue()); | |
| 392 } | |
| 393 | |
| 394 //-------------------------------------------------------------------------- | |
| 395 | |
| 396 /** | |
| 397 * <p>Converts the string to the unicode format '\u0020'.</p> | |
| 398 * | |
| 399 * <p>This format is the Java source code format.</p> | |
| 400 * | |
| 401 * <pre> | |
| 402 * CharUtils.unicodeEscaped(' ') = "\u0020" | |
| 403 * CharUtils.unicodeEscaped('A') = "\u0041" | |
| 404 * </pre> | |
| 405 * | |
| 406 * @param ch the character to convert | |
| 407 * @return the escaped unicode string | |
| 408 */ | |
| 409 public static String unicodeEscaped(char ch) | |
| 410 { | |
| 411 if (ch < 0x10) | |
| 412 { | |
| 413 return "\\u000" + Integer.toHexString(ch); | |
| 414 } else if (ch < 0x100) | |
| 415 { | |
| 416 return "\\u00" + Integer.toHexString(ch); | |
| 417 } else if (ch < 0x1000) | |
| 418 { | |
| 419 return "\\u0" + Integer.toHexString(ch); | |
| 420 } | |
| 421 return "\\u" + Integer.toHexString(ch); | |
| 422 } | |
| 423 | |
| 424 /** | |
| 425 * <p>Converts the string to the unicode format '\u0020'.</p> | |
| 426 * | |
| 427 * <p>This format is the Java source code format.</p> | |
| 428 * | |
| 429 * <p>If <code>null</code> is passed in, <code>null</code> will be returned.</
p> | |
| 430 * | |
| 431 * <pre> | |
| 432 * CharUtils.unicodeEscaped(null) = null | |
| 433 * CharUtils.unicodeEscaped(' ') = "\u0020" | |
| 434 * CharUtils.unicodeEscaped('A') = "\u0041" | |
| 435 * </pre> | |
| 436 * | |
| 437 * @param ch the character to convert, may be null | |
| 438 * @return the escaped unicode string, null if null input | |
| 439 */ | |
| 440 public static String unicodeEscaped(Character ch) | |
| 441 { | |
| 442 if (ch == null) | |
| 443 { | |
| 444 return null; | |
| 445 } | |
| 446 return unicodeEscaped(ch.charValue()); | |
| 447 } | |
| 448 | |
| 449 //-------------------------------------------------------------------------- | |
| 450 | |
| 451 /** | |
| 452 * <p>Checks whether the character is ASCII 7 bit.</p> | |
| 453 * | |
| 454 * <pre> | |
| 455 * CharUtils.isAscii('a') = true | |
| 456 * CharUtils.isAscii('A') = true | |
| 457 * CharUtils.isAscii('3') = true | |
| 458 * CharUtils.isAscii('-') = true | |
| 459 * CharUtils.isAscii('\n') = true | |
| 460 * CharUtils.isAscii('©') = false | |
| 461 * </pre> | |
| 462 * | |
| 463 * @param ch the character to check | |
| 464 * @return true if less than 128 | |
| 465 */ | |
| 466 public static boolean isAscii(char ch) | |
| 467 { | |
| 468 return ch < 128; | |
| 469 } | |
| 470 | |
| 471 /** | |
| 472 * <p>Checks whether the character is ASCII 7 bit printable.</p> | |
| 473 * <p/> | |
| 474 * <pre> | |
| 475 * CharUtils.isAsciiPrintable('a') = true | |
| 476 * CharUtils.isAsciiPrintable('A') = true | |
| 477 * CharUtils.isAsciiPrintable('3') = true | |
| 478 * CharUtils.isAsciiPrintable('-') = true | |
| 479 * CharUtils.isAsciiPrintable('\n') = false | |
| 480 * CharUtils.isAsciiPrintable('©') = false | |
| 481 * </pre> | |
| 482 * | |
| 483 * @param ch the character to check | |
| 484 * @return true if between 32 and 126 inclusive | |
| 485 */ | |
| 486 public static boolean isAsciiPrintable(char ch) | |
| 487 { | |
| 488 return ch >= 32 && ch < 127; | |
| 489 } | |
| 490 | |
| 491 /** | |
| 492 * <p>Checks whether the character is ASCII 7 bit control.</p> | |
| 493 * | |
| 494 * <pre> | |
| 495 * CharUtils.isAsciiControl('a') = false | |
| 496 * CharUtils.isAsciiControl('A') = false | |
| 497 * CharUtils.isAsciiControl('3') = false | |
| 498 * CharUtils.isAsciiControl('-') = false | |
| 499 * CharUtils.isAsciiControl('\n') = true | |
| 500 * CharUtils.isAsciiControl('©') = false | |
| 501 * </pre> | |
| 502 * | |
| 503 * @param ch the character to check | |
| 504 * @return true if less than 32 or equals 127 | |
| 505 */ | |
| 506 public static boolean isAsciiControl(char ch) | |
| 507 { | |
| 508 return ch < 32 || ch == 127; | |
| 509 } | |
| 510 | |
| 511 /** | |
| 512 * <p>Checks whether the character is ASCII 7 bit alphabetic.</p> | |
| 513 * <p/> | |
| 514 * <pre> | |
| 515 * CharUtils.isAsciiAlpha('a') = true | |
| 516 * CharUtils.isAsciiAlpha('A') = true | |
| 517 * CharUtils.isAsciiAlpha('3') = false | |
| 518 * CharUtils.isAsciiAlpha('-') = false | |
| 519 * CharUtils.isAsciiAlpha('\n') = false | |
| 520 * CharUtils.isAsciiAlpha('©') = false | |
| 521 * </pre> | |
| 522 * | |
| 523 * @param ch the character to check | |
| 524 * @return true if between 65 and 90 or 97 and 122 inclusive | |
| 525 */ | |
| 526 public static boolean isAsciiAlpha(char ch) | |
| 527 { | |
| 528 return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z'); | |
| 529 } | |
| 530 | |
| 531 /** | |
| 532 * <p>Checks whether the character is ASCII 7 bit alphabetic upper case.</p> | |
| 533 * | |
| 534 * <pre> | |
| 535 * CharUtils.isAsciiAlphaUpper('a') = false | |
| 536 * CharUtils.isAsciiAlphaUpper('A') = true | |
| 537 * CharUtils.isAsciiAlphaUpper('3') = false | |
| 538 * CharUtils.isAsciiAlphaUpper('-') = false | |
| 539 * CharUtils.isAsciiAlphaUpper('\n') = false | |
| 540 * CharUtils.isAsciiAlphaUpper('©') = false | |
| 541 * </pre> | |
| 542 * | |
| 543 * @param ch the character to check | |
| 544 * @return true if between 65 and 90 inclusive | |
| 545 */ | |
| 546 public static boolean isAsciiAlphaUpper(char ch) | |
| 547 { | |
| 548 return ch >= 'A' && ch <= 'Z'; | |
| 549 } | |
| 550 | |
| 551 /** | |
| 552 * <p>Checks whether the character is ASCII 7 bit alphabetic lower case.</p> | |
| 553 * <p/> | |
| 554 * <pre> | |
| 555 * CharUtils.isAsciiAlphaLower('a') = true | |
| 556 * CharUtils.isAsciiAlphaLower('A') = false | |
| 557 * CharUtils.isAsciiAlphaLower('3') = false | |
| 558 * CharUtils.isAsciiAlphaLower('-') = false | |
| 559 * CharUtils.isAsciiAlphaLower('\n') = false | |
| 560 * CharUtils.isAsciiAlphaLower('©') = false | |
| 561 * </pre> | |
| 562 * | |
| 563 * @param ch the character to check | |
| 564 * @return true if between 97 and 122 inclusive | |
| 565 */ | |
| 566 public static boolean isAsciiAlphaLower(char ch) | |
| 567 { | |
| 568 return ch >= 'a' && ch <= 'z'; | |
| 569 } | |
| 570 | |
| 571 /** | |
| 572 * <p>Checks whether the character is ASCII 7 bit numeric.</p> | |
| 573 * | |
| 574 * <pre> | |
| 575 * CharUtils.isAsciiNumeric('a') = false | |
| 576 * CharUtils.isAsciiNumeric('A') = false | |
| 577 * CharUtils.isAsciiNumeric('3') = true | |
| 578 * CharUtils.isAsciiNumeric('-') = false | |
| 579 * CharUtils.isAsciiNumeric('\n') = false | |
| 580 * CharUtils.isAsciiNumeric('©') = false | |
| 581 * </pre> | |
| 582 * | |
| 583 * @param ch the character to check | |
| 584 * @return true if between 48 and 57 inclusive | |
| 585 */ | |
| 586 public static boolean isAsciiNumeric(char ch) | |
| 587 { | |
| 588 return ch >= '0' && ch <= '9'; | |
| 589 } | |
| 590 | |
| 591 /** | |
| 592 * <p>Checks whether the character is ASCII 7 bit numeric.</p> | |
| 593 * | |
| 594 * <pre> | |
| 595 * CharUtils.isAsciiAlphanumeric('a') = true | |
| 596 * CharUtils.isAsciiAlphanumeric('A') = true | |
| 597 * CharUtils.isAsciiAlphanumeric('3') = true | |
| 598 * CharUtils.isAsciiAlphanumeric('-') = false | |
| 599 * CharUtils.isAsciiAlphanumeric('\n') = false | |
| 600 * CharUtils.isAsciiAlphanumeric('©') = false | |
| 601 * </pre> | |
| 602 * | |
| 603 * @param ch the character to check | |
| 604 * @return true if between 48 and 57 or 65 and 90 or 97 and 122 inclusive | |
| 605 */ | |
| 606 public static boolean isAsciiAlphanumeric(char ch) | |
| 607 { | |
| 608 return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') || (ch >= '0' &&
ch <= '9'); | |
| 609 } | |
| 610 | |
| 611 } | |
| OLD | NEW |