Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Nested Classes](https://developer.android.com/reference/android/icu/lang/UCharacter#nestedclasses) \| [Constants](https://developer.android.com/reference/android/icu/lang/UCharacter#constants) \| [Inherited Constants](https://developer.android.com/reference/android/icu/lang/UCharacter#inhconstants) \| [Methods](https://developer.android.com/reference/android/icu/lang/UCharacter#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/icu/lang/UCharacter#inhmethods)

# UCharacter

*** ** * ** ***

` public final class UCharacter `   
` extends https://developer.android.com/reference/java/lang/Object ` ` implements https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory, https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.icu.lang.UCharacter |

<br />

*** ** * ** ***

**\[icu enhancement\]** ICU's replacement for `https://developer.android.com/reference/java/lang/Character`. Methods, fields, and other functionality specific to ICU are labeled '**\[icu\]**'.

The UCharacter class provides extensions to the `https://developer.android.com/reference/java/lang/Character` class. These extensions provide support for more Unicode properties. Each ICU release supports the latest version of Unicode available at that time.

For some time before Java 5 added support for supplementary Unicode code points, The ICU UCharacter class and many other ICU classes already supported them. Some UCharacter methods and constants were widened slightly differently than how the Character class methods and constants were widened later. In particular, `https://developer.android.com/reference/java/lang/Character#MAX_VALUE` is still a char with the value U+FFFF, while the `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_VALUE` is an int with the value U+10FFFF.

Code points are represented in these API using ints. While it would be more convenient in Java to have a separate primitive datatype for them, ints suffice in the meantime.

Aside from the additions for UTF-16 support, and the updated Unicode properties, the main differences between UCharacter and Character are:

- UCharacter is not designed to be a char wrapper and does not have APIs to which involves management of that single char.  
  These include:
  - char charValue(),
  - int compareTo(java.lang.Character, java.lang.Character), etc.
- UCharacter does not include Character APIs that are deprecated, nor does it include the Java-specific character information, such as boolean isJavaIdentifierPart(char ch).
- Character maps characters 'A' - 'Z' and 'a' - 'z' to the numeric values '10' - '35'. UCharacter also does this in digit and getNumericValue, to adhere to the java semantics of these methods. New methods unicodeDigit, and getUnicodeNumericValue do not treat the above code points as having numeric values. This is a semantic change from ICU4J 1.3.1.

In addition to Java compatibility functions, which calculate derived properties, this API provides low-level access to the Unicode Character Database.

Unicode assigns each code point (not just assigned character) values for many properties. Most of them are simple boolean flags, or constants from a small enumerated list. For some properties, values are strings or other relatively more complex types.

For more information see ["About the Unicode Character Database"](http://www.unicode/org/ucd/) (http://www.unicode.org/ucd/) and the [ICU User Guide chapter on Properties](https://unicode-org.github.io/icu/userguide/strings/properties) (https://unicode-org.github.io/icu/userguide/strings/properties).

There are also functions that provide easy migration from C/POSIX functions like isblank(). Their use is generally discouraged because the C/POSIX standards do not define their semantics beyond the ASCII range, which means that different implementations exhibit very different behavior. Instead, Unicode properties should be used directly.

There are also only a few, broad C/POSIX character classes, and they tend to be used for conflicting purposes. For example, the "isalpha()" class is sometimes used to determine word boundaries, while a more sophisticated approach would at least distinguish initial letters from continuation characters (the latter including combining marks). (In ICU, BreakIterator is the most sophisticated API for word boundaries.) Another example: There is no "istitle()" class for titlecase characters.

ICU 3.4 and later provides API access for all twelve C/POSIX character classes. ICU implements them according to the Standard Recommendations in Annex C: Compatibility Properties of UTS #18 Unicode Regular Expressions (http://www.unicode.org/reports/tr18/#Compatibility_Properties).

API access for C/POSIX character classes is as follows:

    - alpha:     isUAlphabetic(c) or hasBinaryProperty(c, UProperty.ALPHABETIC)
    - lower:     isULowercase(c) or hasBinaryProperty(c, UProperty.LOWERCASE)
    - upper:     isUUppercase(c) or hasBinaryProperty(c, UProperty.UPPERCASE)
    - punct:     ((1<<getType(c)) & ((1<<DASH_PUNCTUATION)|(1<<START_PUNCTUATION)|
                  (1<<END_PUNCTUATION)|(1<<CONNECTOR_PUNCTUATION)|(1<<OTHER_PUNCTUATION)|
                  (1<<INITIAL_PUNCTUATION)|(1<<FINAL_PUNCTUATION)))!=0
    - digit:     isDigit(c) or getType(c)==DECIMAL_DIGIT_NUMBER
    - xdigit:    hasBinaryProperty(c, UProperty.POSIX_XDIGIT)
    - alnum:     hasBinaryProperty(c, UProperty.POSIX_ALNUM)
    - space:     isUWhiteSpace(c) or hasBinaryProperty(c, UProperty.WHITE_SPACE)
    - blank:     hasBinaryProperty(c, UProperty.POSIX_BLANK)
    - cntrl:     getType(c)==CONTROL
    - graph:     hasBinaryProperty(c, UProperty.POSIX_GRAPH)
    - print:     hasBinaryProperty(c, UProperty.POSIX_PRINT)

The C/POSIX character classes are also available in UnicodeSet patterns, using patterns like \[:graph:\] or \\p{graph}.

**\[icu\] Note:** There are several ICU (and Java) whitespace functions. Comparison:

- isUWhiteSpace=UCHAR_WHITE_SPACE: Unicode White_Space property; most of general categories "Z" (separators) + most whitespace ISO controls (including no-break spaces, but excluding IS1..IS4)
- isWhitespace: Java isWhitespace; Z + whitespace ISO controls but excluding no-break spaces
- isSpaceChar: just Z (including no-break spaces)

This class is not subclassable.
**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacterEnums`

## Summary

| ### Nested classes ||
|---|---|
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.BidiPairedBracketType` Bidi Paired Bracket Type constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.DecompositionType` Decomposition Type constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.EastAsianWidth` East Asian Width constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.GraphemeClusterBreak` Grapheme Cluster Break constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.HangulSyllableType` Hangul Syllable Type constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.IndicPositionalCategory` Indic Positional Category constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.IndicSyllabicCategory` Indic Syllabic Category constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.JoiningGroup` Joining Group constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.JoiningType` Joining Type constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.LineBreak` Line Break constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.NumericType` Numeric Type constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.SentenceBreak` Sentence Break constants. |
| ` class` | `https://developer.android.com/reference/android/icu/lang/UCharacter.UnicodeBlock` **\[icu enhancement\]** ICU's replacement for `https://developer.android.com/reference/java/lang/Character.UnicodeBlock`. Methods, fields, and other functionality specific to ICU are labeled '**\[icu\]**'. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.VerticalOrientation` Vertical Orientation constants. |
| ` interface` | `https://developer.android.com/reference/android/icu/lang/UCharacter.WordBreak` Word Break constants. |

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#FOLD_CASE_DEFAULT` **\[icu\]** Option value for case folding: use default mappings defined in CaseFolding.txt. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#FOLD_CASE_EXCLUDE_SPECIAL_I` **\[icu\]** Option value for case folding: Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az). |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_CODE_POINT` Constant U+10FFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_CODE_POINT`. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_HIGH_SURROGATE` Constant U+DBFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_HIGH_SURROGATE`. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_LOW_SURROGATE` Constant U+DFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_LOW_SURROGATE`. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_RADIX` Compatibility constant for Java Character's MAX_RADIX. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_SURROGATE` Constant U+DFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_SURROGATE`. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MAX_VALUE` The highest Unicode code point value (scalar value), constant U+10FFFF (uses 21 bits). |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_CODE_POINT` Constant U+0000, same as `https://developer.android.com/reference/java/lang/Character#MIN_CODE_POINT`. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_HIGH_SURROGATE` Constant U+D800, same as `https://developer.android.com/reference/java/lang/Character#MIN_HIGH_SURROGATE`. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_LOW_SURROGATE` Constant U+DC00, same as `https://developer.android.com/reference/java/lang/Character#MIN_LOW_SURROGATE`. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_RADIX` Compatibility constant for Java Character's MIN_RADIX. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_SUPPLEMENTARY_CODE_POINT` Constant U+10000, same as `https://developer.android.com/reference/java/lang/Character#MIN_SUPPLEMENTARY_CODE_POINT`. |
| `char` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_SURROGATE` Constant U+D800, same as `https://developer.android.com/reference/java/lang/Character#MIN_SURROGATE`. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#MIN_VALUE` The lowest Unicode code point value, constant 0. |
| `double` | `https://developer.android.com/reference/android/icu/lang/UCharacter#NO_NUMERIC_VALUE` Special value that is returned by getUnicodeNumericValue(int) when no numeric value is defined for a code point. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#REPLACEMENT_CHAR` Unicode value used when translating into Unicode encoding form and there is no existing character. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#SUPPLEMENTARY_MIN_VALUE` The minimum value for Supplementary code points, constant U+10000. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_BREAK_ADJUSTMENT` Do not adjust the titlecasing indexes from BreakIterator::next() indexes; titlecase exactly the characters at breaks from the iterator. |
| `int` | `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_LOWERCASE` Do not lowercase non-initial parts of words when titlecasing. |

### Inherited constants

From interface `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory` `byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#COMBINING_SPACING_MARK`

Character type Mc
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#CONNECTOR_PUNCTUATION`

Character type Pc
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#CONTROL`

Character type Cc
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#CURRENCY_SYMBOL`

Character type Sc
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#DASH_PUNCTUATION`

Character type Pd
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#DECIMAL_DIGIT_NUMBER`

Character type Nd
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#ENCLOSING_MARK`

Character type Me
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#END_PUNCTUATION`

Character type Pe
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#FINAL_PUNCTUATION`

Character type Pf
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#FINAL_QUOTE_PUNCTUATION`

Character type Pf This name is compatible with java.lang.Character's name for this type.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#FORMAT`

Character type Cf
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#GENERAL_OTHER_TYPES`

Character type Cn Not Assigned (no characters in \[UnicodeData.txt\] have this property)
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#INITIAL_PUNCTUATION`

Character type Pi
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#INITIAL_QUOTE_PUNCTUATION`

Character type Pi This name is compatible with java.lang.Character's name for this type.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#LETTER_NUMBER`

Character type Nl
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#LINE_SEPARATOR`

Character type Zl
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#LOWERCASE_LETTER`

Character type Ll
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#MATH_SYMBOL`

Character type Sm
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#MODIFIER_LETTER`

Character type Lm
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#MODIFIER_SYMBOL`

Character type Sk
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#NON_SPACING_MARK`

Character type Mn
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#OTHER_LETTER`

Character type Lo
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#OTHER_NUMBER`

Character type No
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#OTHER_PUNCTUATION`

Character type Po
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#OTHER_SYMBOL`

Character type So
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#PARAGRAPH_SEPARATOR`

Character type Zp
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#PRIVATE_USE`

Character type Co
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#SPACE_SEPARATOR`

Character type Zs
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#START_PUNCTUATION`

Character type Ps
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#SURROGATE`

Character type Cs
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#TITLECASE_LETTER`

Character type Lt
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#UNASSIGNED`

Unassigned character type
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory#UPPERCASE_LETTER`

Character type Lu
From interface `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection` `int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#ARABIC_NUMBER`

Directional type AN
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#BLOCK_SEPARATOR`

Directional type B
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#BOUNDARY_NEUTRAL`

Directional type BN
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#COMMON_NUMBER_SEPARATOR`

Directional type CS
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_ARABIC_NUMBER`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_ARABIC_NUMBER`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_BOUNDARY_NEUTRAL`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_BOUNDARY_NEUTRAL`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_COMMON_NUMBER_SEPARATOR`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_COMMON_NUMBER_SEPARATOR`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_EUROPEAN_NUMBER`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_EUROPEAN_NUMBER`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_LEFT_TO_RIGHT`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_LEFT_TO_RIGHT`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_NONSPACING_MARK`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_NONSPACING_MARK`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_OTHER_NEUTRALS`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_OTHER_NEUTRALS`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_PARAGRAPH_SEPARATOR`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_PARAGRAPH_SEPARATOR`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_POP_DIRECTIONAL_FORMAT`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_POP_DIRECTIONAL_FORMAT`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_RIGHT_TO_LEFT`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_RIGHT_TO_LEFT`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_SEGMENT_SEPARATOR`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_SEGMENT_SEPARATOR`.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_UNDEFINED`

Undefined bidirectional character type.
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIRECTIONALITY_WHITESPACE`

Equivalent to `https://developer.android.com/reference/java/lang/Character#DIRECTIONALITY_WHITESPACE`.
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#DIR_NON_SPACING_MARK`

Directional type NSM
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#EUROPEAN_NUMBER`

Directional type EN
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#EUROPEAN_NUMBER_SEPARATOR`

Directional type ES
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#EUROPEAN_NUMBER_TERMINATOR`

Directional type ET
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#FIRST_STRONG_ISOLATE`

Directional type FSI
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#LEFT_TO_RIGHT`

Directional type L
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#LEFT_TO_RIGHT_EMBEDDING`

Directional type LRE
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#LEFT_TO_RIGHT_ISOLATE`

Directional type LRI
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#LEFT_TO_RIGHT_OVERRIDE`

Directional type LRO
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#OTHER_NEUTRAL`

Directional type ON
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#POP_DIRECTIONAL_FORMAT`

Directional type PDF
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#POP_DIRECTIONAL_ISOLATE`

Directional type PDI
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#RIGHT_TO_LEFT`

Directional type R
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#RIGHT_TO_LEFT_ARABIC`

Directional type AL
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#RIGHT_TO_LEFT_EMBEDDING`

Directional type RLE
`byte` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#RIGHT_TO_LEFT_ISOLATE`

Directional type RLI
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#RIGHT_TO_LEFT_OVERRIDE`

Directional type RLO
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#SEGMENT_SEPARATOR`

Directional type S
`int` `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection#WHITE_SPACE_NEUTRAL`

Directional type WS

| ### Public methods ||
|---|---|
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#charCount(int)(int cp) ` Same as `https://developer.android.com/reference/java/lang/Character#charCount(int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointAt(char[],%20int,%20int)(char[] text, int index, int limit) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(char[],%20int,%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointAt(char[],%20int)(char[] text, int index) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(char[],%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointAt(java.lang.CharSequence,%20int)(https://developer.android.com/reference/java/lang/CharSequence seq, int index) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(java.lang.CharSequence,%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointBefore(char[],%20int)(char[] text, int index) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(char[],%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointBefore(java.lang.CharSequence,%20int)(https://developer.android.com/reference/java/lang/CharSequence seq, int index) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(java.lang.CharSequence,%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointBefore(char[],%20int,%20int)(char[] text, int index, int limit) ` Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(char[],%20int,%20int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointCount(java.lang.CharSequence,%20int,%20int)(https://developer.android.com/reference/java/lang/CharSequence text, int start, int limit) ` Equivalent to the `https://developer.android.com/reference/java/lang/Character#codePointCount(java.lang.CharSequence,%20int,%20int)` method, for convenience. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#codePointCount(char[],%20int,%20int)(char[] text, int start, int limit) ` Equivalent to the `https://developer.android.com/reference/java/lang/Character#codePointCount(char[],%20int,%20int)` method, for convenience. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#digit(int)(int ch) ` Returnss the numeric value of a decimal digit code point. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#digit(int,%20int)(int ch, int radix) ` Returnss the numeric value of a decimal digit code point. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(java.lang.String,%20boolean)(https://developer.android.com/reference/java/lang/String str, boolean defaultmapping) ` **\[icu\]** The given string is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if any character has no case folding equivalent, the character itself is returned. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(int,%20boolean)(int ch, boolean defaultmapping) ` **\[icu\]** The given character is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if the character has no case folding equivalent, the character itself is returned. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(int,%20int)(int ch, int options) ` **\[icu\]** The given character is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if the character has no case folding equivalent, the character itself is returned. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(java.lang.String,%20int)(https://developer.android.com/reference/java/lang/String str, int options) ` **\[icu\]** The given string is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if any character has no case folding equivalent, the character itself is returned. |
| ` static char` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#forDigit(int,%20int)(int digit, int radix) ` Provide the java.lang.Character forDigit API, for convenience. |
| ` static https://developer.android.com/reference/android/icu/util/VersionInfo` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getAge(int)(int ch) ` **\[icu\]** Returns the "age" of the code point. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getBidiPairedBracket(int)(int c) ` **\[icu\]** Maps the specified character to its paired bracket character. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCharFromExtendedName(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` **\[icu\]** Find a Unicode character by either its name and return its code point value. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCharFromName(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` **\[icu\]** Finds a Unicode code point by its most current Unicode name and return its code point value. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCharFromNameAlias(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` **\[icu\]** Find a Unicode character by its corrected name alias and return its code point value. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCodePoint(int,%20int)(int lead, int trail) ` **\[icu\]** Returns a code point corresponding to the two surrogate code units. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCodePoint(char)(char char16) ` **\[icu\]** Returns the code point corresponding to the BMP code point. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCodePoint(char,%20char)(char lead, char trail) ` **\[icu\]** Returns a code point corresponding to the two surrogate code units. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getCombiningClass(int)(int ch) ` **\[icu\]** Returns the combining class of the argument codepoint |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getDirection(int)(int ch) ` **\[icu\]** Returns the Bidirection property of a code point. |
| ` static byte` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getDirectionality(int)(int cp) ` Equivalent to the `https://developer.android.com/reference/java/lang/Character#getDirectionality(char)` method, for convenience. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getExtendedName(int)(int ch) ` **\[icu\]** Returns a name for a valid codepoint. |
| ` static https://developer.android.com/reference/android/icu/util/ValueIterator` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getExtendedNameIterator()() ` **\[icu\]** Returns an iterator for character names, iterating over codepoints. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getHanNumericValue(int)(int ch) ` **\[icu\]** Returns the numeric value of a Han character. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getIdentifierTypes(int,%20java.util.EnumSet<android.icu.lang.UCharacter.IdentifierType>)(int c, https://developer.android.com/reference/java/util/EnumSet<https://developer.android.com/reference/android/icu/lang/UCharacter.IdentifierType> types) ` Writes code point c's Identifier_Type as a set of IdentifierType values and returns the number of types. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMaxValue(int)(int type) ` **\[icu\]** Returns the maximum value for an integer/binary Unicode property. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMinValue(int)(int type) ` **\[icu\]** Returns the minimum value for an integer/binary Unicode property type. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyValue(int,%20int)(int ch, int type) ` **\[icu\]** Returns the property value for a Unicode property type of a code point. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getMirror(int)(int ch) ` **\[icu\]** Maps the specified code point to a "mirror-image" code point. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getName(int)(int ch) ` **\[icu\]** Returns the most current Unicode name of the argument code point, or null if the character is unassigned or outside the range `UCharacter.MIN_VALUE` and `UCharacter.MAX_VALUE` or does not have a name. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getName(java.lang.String,%20java.lang.String)(https://developer.android.com/reference/java/lang/String s, https://developer.android.com/reference/java/lang/String separator) ` **\[icu\]** Returns the names for each of the characters in a string |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getNameAlias(int)(int ch) ` **\[icu\]** Returns the corrected name from NameAliases.txt if there is one. |
| ` static https://developer.android.com/reference/android/icu/util/ValueIterator` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getNameIterator()() ` **\[icu\]** Returns an iterator for character names, iterating over codepoints. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getNumericValue(int)(int ch) ` Returns the numeric value of the code point as a nonnegative integer. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getPropertyEnum(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence propertyAlias) ` **\[icu\]** Return the UProperty selector for a given property name, as specified in the Unicode database file PropertyAliases.txt. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getPropertyName(int,%20int)(int property, int nameChoice) ` **\[icu\]** Return the Unicode name for a given property, as given in the Unicode database file PropertyAliases.txt. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getPropertyValueEnum(int,%20java.lang.CharSequence)(int property, https://developer.android.com/reference/java/lang/CharSequence valueAlias) ` **\[icu\]** Return the property value integer for a given value name, as specified in the Unicode database file PropertyValueAliases.txt. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getPropertyValueName(int,%20int,%20int)(int property, int value, int nameChoice) ` **\[icu\]** Return the Unicode name for a given property value, as given in the Unicode database file PropertyValueAliases.txt. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getType(int)(int ch) ` Returns a value indicating a code point's Unicode category. |
| ` static https://developer.android.com/reference/android/icu/util/RangeValueIterator` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getTypeIterator()() ` **\[icu\]** Returns an iterator for character types, iterating over codepoints. |
| ` static double` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeNumericValue(int)(int ch) ` **\[icu\]** Returns the numeric value for a Unicode code point as defined in the Unicode Character Database. |
| ` static https://developer.android.com/reference/android/icu/util/VersionInfo` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeVersion()() ` **\[icu\]** Returns the version of Unicode data used. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(int,%20int)(int ch, int property) ` **\[icu\]** Check a binary Unicode property for a code point. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(java.lang.CharSequence,%20int)(https://developer.android.com/reference/java/lang/CharSequence s, int property) ` **\[icu\]** Returns true if the property is true for the string. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#hasIdentifierType(int,%20android.icu.lang.UCharacter.IdentifierType)(int c, https://developer.android.com/reference/android/icu/lang/UCharacter.IdentifierType type) ` Does the set of Identifier_Type values code point c contain the given type? Used for UTS #39 General Security Profile for Identifiers (https://www.unicode.org/reports/tr39/#General_Security_Profile). |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isBMP(int)(int ch) ` **\[icu\]** Determines if the code point is in the BMP plane. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isBaseForm(int)(int ch) ` **\[icu\]** Determines whether the specified code point is of base form. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isDefined(int)(int ch) ` Determines if a code point has a defined meaning in the up-to-date Unicode standard. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isDigit(int)(int ch) ` Determines if a code point is a Java digit. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isHighSurrogate(int)(int codePoint) ` Same as `https://developer.android.com/reference/java/lang/Character#isHighSurrogate(char)`, except that the ICU version accepts `int` for code points. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isHighSurrogate(char)(char ch) ` Same as `https://developer.android.com/reference/java/lang/Character#isHighSurrogate(char)`, |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isISOControl(int)(int ch) ` Determines if the specified code point is an ISO control character. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isIdentifierIgnorable(int)(int ch) ` Determines if the specified code point should be regarded as an ignorable character in a Java identifier. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isJavaIdentifierPart(int)(int cp) ` Compatibility override of Java method, delegates to java.lang.Character.isJavaIdentifierPart. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isJavaIdentifierStart(int)(int cp) ` Compatibility override of Java method, delegates to java.lang.Character.isJavaIdentifierStart. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLegal(int)(int ch) ` **\[icu\]** A code point is illegal if and only if - Out of bounds, less than 0 or greater than UCharacter.MAX_VALUE - A surrogate value, 0xD800 to 0xDFFF - Not-a-character, having the form 0x xxFFFF or 0x xxFFFE Note: legal does not mean that it is assigned in this version of Unicode. <br /> |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLegal(java.lang.String)(https://developer.android.com/reference/java/lang/String str) ` **\[icu\]** A string is legal iff all its code points are legal. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLetter(int)(int ch) ` Determines if the specified code point is a letter. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLetterOrDigit(int)(int ch) ` Determines if the specified code point is a letter or digit. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLowSurrogate(char)(char ch) ` Same as `https://developer.android.com/reference/java/lang/Character#isLowSurrogate(char)`, |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLowSurrogate(int)(int codePoint) ` Same as `https://developer.android.com/reference/java/lang/Character#isLowSurrogate(char)`, except that the ICU version accepts `int` for code points. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isLowerCase(int)(int ch) ` Determines if the specified code point is a lowercase character. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isMirrored(int)(int ch) ` Determines whether the code point has the "mirrored" property. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isPrintable(int)(int ch) ` **\[icu\]** Determines whether the specified code point is a printable character according to the Unicode standard. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isSpaceChar(int)(int ch) ` Determines if the specified code point is a Unicode specified space character, i.e. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isSupplementary(int)(int ch) ` **\[icu\]** Determines if the code point is a supplementary character. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isSupplementaryCodePoint(int)(int cp) ` Same as `https://developer.android.com/reference/java/lang/Character#isSupplementaryCodePoint(int)`. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isSurrogatePair(int,%20int)(int high, int low) ` Same as `https://developer.android.com/reference/java/lang/Character#isSurrogatePair(char,%20char)`, except that the ICU version accepts `int` for code points. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isSurrogatePair(char,%20char)(char high, char low) ` Same as `https://developer.android.com/reference/java/lang/Character#isSurrogatePair(char,%20char)`. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isTitleCase(int)(int ch) ` Determines if the specified code point is a titlecase character. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUAlphabetic(int)(int ch) ` **\[icu\]** Check if a code point has the Alphabetic Unicode property. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isULowercase(int)(int ch) ` **\[icu\]** Check if a code point has the Lowercase Unicode property. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUUppercase(int)(int ch) ` **\[icu\]** Check if a code point has the Uppercase Unicode property. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUWhiteSpace(int)(int ch) ` **\[icu\]** Check if a code point has the White_Space Unicode property. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUnicodeIdentifierPart(int)(int ch) ` Determines if the specified character is permissible as a non-initial character of an identifier according to UAX #31 Unicode Identifier and Pattern Syntax. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUnicodeIdentifierStart(int)(int ch) ` Determines if the specified character is permissible as the first character in an identifier according to UAX #31 Unicode Identifier and Pattern Syntax. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isUpperCase(int)(int ch) ` Determines if the specified code point is an uppercase character. |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isValidCodePoint(int)(int cp) ` Is cp a Unicode code point U+0000..U+10FFFF? See [Unicode Glossary: Code Point](https://www.unicode.org/glossary/#code_point). |
| ` static boolean` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#isWhitespace(int)(int ch) ` Determines if the specified code point is a white space character. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#offsetByCodePoints(java.lang.CharSequence,%20int,%20int)(https://developer.android.com/reference/java/lang/CharSequence text, int index, int codePointOffset) ` Equivalent to the `https://developer.android.com/reference/java/lang/Character#offsetByCodePoints(java.lang.CharSequence,%20int,%20int)` method, for convenience. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#offsetByCodePoints(char[],%20int,%20int,%20int,%20int)(char[] text, int start, int count, int index, int codePointOffset) ` Equivalent to the `https://developer.android.com/reference/java/lang/Character#offsetByCodePoints(char[],%20int,%20int,%20int,%20int)` method, for convenience. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toChars(int,%20char[],%20int)(int cp, char[] dst, int dstIndex) ` Same as `https://developer.android.com/reference/java/lang/Character#toChars(int,%20char[],%20int)`. |
| ` static char[]` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toChars(int)(int cp) ` Same as `https://developer.android.com/reference/java/lang/Character#toChars(int)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toCodePoint(char,%20char)(char high, char low) ` Same as `https://developer.android.com/reference/java/lang/Character#toCodePoint(char,%20char)`. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toCodePoint(int,%20int)(int high, int low) ` Same as `https://developer.android.com/reference/java/lang/Character#toCodePoint(char,%20char)`, except that the ICU version accepts `int` for code points. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toLowerCase(java.lang.String)(https://developer.android.com/reference/java/lang/String str) ` Returns the lowercase version of the argument string. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toLowerCase(int)(int ch) ` The given code point is mapped to its lowercase equivalent; if the code point has no lowercase equivalent, the code point itself is returned. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toLowerCase(android.icu.util.ULocale,%20java.lang.String)(https://developer.android.com/reference/android/icu/util/ULocale locale, https://developer.android.com/reference/java/lang/String str) ` Returns the lowercase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toLowerCase(java.util.Locale,%20java.lang.String)(https://developer.android.com/reference/java/util/Locale locale, https://developer.android.com/reference/java/lang/String str) ` Returns the lowercase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toString(int)(int ch) ` Converts argument code point and returns a String object representing the code point's value in UTF-16 format. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(java.util.Locale,%20java.lang.String,%20android.icu.text.BreakIterator,%20int)(https://developer.android.com/reference/java/util/Locale locale, https://developer.android.com/reference/java/lang/String str, https://developer.android.com/reference/android/icu/text/BreakIterator titleIter, int options) ` **\[icu\]** Returns the titlecase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(android.icu.util.ULocale,%20java.lang.String,%20android.icu.text.BreakIterator)(https://developer.android.com/reference/android/icu/util/ULocale locale, https://developer.android.com/reference/java/lang/String str, https://developer.android.com/reference/android/icu/text/BreakIterator titleIter) ` <br /> Returns the titlecase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(java.lang.String,%20android.icu.text.BreakIterator)(https://developer.android.com/reference/java/lang/String str, https://developer.android.com/reference/android/icu/text/BreakIterator breakiter) ` <br /> Returns the titlecase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(android.icu.util.ULocale,%20java.lang.String,%20android.icu.text.BreakIterator,%20int)(https://developer.android.com/reference/android/icu/util/ULocale locale, https://developer.android.com/reference/java/lang/String str, https://developer.android.com/reference/android/icu/text/BreakIterator titleIter, int options) ` <br /> Returns the titlecase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(java.util.Locale,%20java.lang.String,%20android.icu.text.BreakIterator)(https://developer.android.com/reference/java/util/Locale locale, https://developer.android.com/reference/java/lang/String str, https://developer.android.com/reference/android/icu/text/BreakIterator breakiter) ` <br /> Returns the titlecase version of the argument string. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(int)(int ch) ` Converts the code point argument to titlecase. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toUpperCase(java.util.Locale,%20java.lang.String)(https://developer.android.com/reference/java/util/Locale locale, https://developer.android.com/reference/java/lang/String str) ` Returns the uppercase version of the argument string. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toUpperCase(android.icu.util.ULocale,%20java.lang.String)(https://developer.android.com/reference/android/icu/util/ULocale locale, https://developer.android.com/reference/java/lang/String str) ` Returns the uppercase version of the argument string. |
| ` static int` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toUpperCase(int)(int ch) ` Converts the character argument to uppercase. |
| ` static https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/icu/lang/UCharacter#toUpperCase(java.lang.String)(https://developer.android.com/reference/java/lang/String str) ` Returns the uppercase version of the argument string. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### FOLD_CASE_DEFAULT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int FOLD_CASE_DEFAULT
```

**\[icu\]** Option value for case folding: use default mappings defined in CaseFolding.txt.

<br />

Constant Value: 0 (0x00000000)

### FOLD_CASE_EXCLUDE_SPECIAL_I

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int FOLD_CASE_EXCLUDE_SPECIAL_I
```

**\[icu\]** Option value for case folding: Use the modified set of mappings provided in CaseFolding.txt to handle dotted I and dotless i appropriately for Turkic languages (tr, az).

Before Unicode 3.2, CaseFolding.txt contains mappings marked with 'I' that are to be included for default mappings and excluded for the Turkic-specific mappings.

Unicode 3.2 CaseFolding.txt instead contains mappings marked with 'T' that are to be excluded for default mappings and included for the Turkic-specific mappings.

<br />

Constant Value: 1 (0x00000001)

### MAX_CODE_POINT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MAX_CODE_POINT
```

Constant U+10FFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_CODE_POINT`.

<br />

Constant Value: 1114111 (0x0010ffff)

### MAX_HIGH_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MAX_HIGH_SURROGATE
```

Constant U+DBFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_HIGH_SURROGATE`.

<br />

Constant Value: 56319 (0x0000dbff)

### MAX_LOW_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MAX_LOW_SURROGATE
```

Constant U+DFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_LOW_SURROGATE`.

<br />

Constant Value: 57343 (0x0000dfff)

### MAX_RADIX

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MAX_RADIX
```

Compatibility constant for Java Character's MAX_RADIX.

<br />

Constant Value: 36 (0x00000024)

### MAX_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MAX_SURROGATE
```

Constant U+DFFF, same as `https://developer.android.com/reference/java/lang/Character#MAX_SURROGATE`.

<br />

Constant Value: 57343 (0x0000dfff)

### MAX_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MAX_VALUE
```

The highest Unicode code point value (scalar value), constant U+10FFFF (uses 21 bits). Same as `https://developer.android.com/reference/java/lang/Character#MAX_CODE_POINT`.

Up-to-date Unicode implementation of `https://developer.android.com/reference/java/lang/Character#MAX_VALUE` which is still a char with the value U+FFFF.

<br />

Constant Value: 1114111 (0x0010ffff)

### MIN_CODE_POINT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MIN_CODE_POINT
```

Constant U+0000, same as `https://developer.android.com/reference/java/lang/Character#MIN_CODE_POINT`.

<br />

Constant Value: 0 (0x00000000)

### MIN_HIGH_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MIN_HIGH_SURROGATE
```

Constant U+D800, same as `https://developer.android.com/reference/java/lang/Character#MIN_HIGH_SURROGATE`.

<br />

Constant Value: 55296 (0x0000d800)

### MIN_LOW_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MIN_LOW_SURROGATE
```

Constant U+DC00, same as `https://developer.android.com/reference/java/lang/Character#MIN_LOW_SURROGATE`.

<br />

Constant Value: 56320 (0x0000dc00)

### MIN_RADIX

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MIN_RADIX
```

Compatibility constant for Java Character's MIN_RADIX.

<br />

Constant Value: 2 (0x00000002)

### MIN_SUPPLEMENTARY_CODE_POINT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MIN_SUPPLEMENTARY_CODE_POINT
```

Constant U+10000, same as `https://developer.android.com/reference/java/lang/Character#MIN_SUPPLEMENTARY_CODE_POINT`.

<br />

Constant Value: 65536 (0x00010000)

### MIN_SURROGATE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final char MIN_SURROGATE
```

Constant U+D800, same as `https://developer.android.com/reference/java/lang/Character#MIN_SURROGATE`.

<br />

Constant Value: 55296 (0x0000d800)

### MIN_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int MIN_VALUE
```

The lowest Unicode code point value, constant 0. Same as `https://developer.android.com/reference/java/lang/Character#MIN_CODE_POINT`, same integer value as `https://developer.android.com/reference/java/lang/Character#MIN_VALUE`.

<br />

Constant Value: 0 (0x00000000)

### NO_NUMERIC_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final double NO_NUMERIC_VALUE
```

Special value that is returned by getUnicodeNumericValue(int) when no numeric value is defined for a code point.

<br />

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeNumericValue(int)`

Constant Value: -1.23456789E8

### REPLACEMENT_CHAR

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int REPLACEMENT_CHAR
```

Unicode value used when translating into Unicode encoding form and there is no existing character.

<br />

Constant Value: 65533 (0x0000fffd)

### SUPPLEMENTARY_MIN_VALUE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int SUPPLEMENTARY_MIN_VALUE
```

The minimum value for Supplementary code points, constant U+10000. Same as `https://developer.android.com/reference/java/lang/Character#MIN_SUPPLEMENTARY_CODE_POINT`.

<br />

Constant Value: 65536 (0x00010000)

### TITLECASE_NO_BREAK_ADJUSTMENT

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TITLECASE_NO_BREAK_ADJUSTMENT
```

Do not adjust the titlecasing indexes from BreakIterator::next() indexes; titlecase exactly the characters at breaks from the iterator. Option bit for titlecasing APIs that take an options bit set. By default, titlecasing will take each break iterator index, adjust it by looking for the next cased character, and titlecase that one. Other characters are lowercased. This follows Unicode 4 \& 5 section 3.13 Default Case Operations: R3 toTitlecase(X): Find the word boundaries based on Unicode Standard Annex #29, "Text Boundaries." Between each pair of word boundaries, find the first cased character F. If F exists, map F to default_title(F); then map each subsequent character C to default_lower(C).

<br />

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(android.icu.util.ULocale,%20java.lang.String,%20android.icu.text.BreakIterator)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_LOWERCASE`

Constant Value: 512 (0x00000200)

### TITLECASE_NO_LOWERCASE

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final int TITLECASE_NO_LOWERCASE
```

Do not lowercase non-initial parts of words when titlecasing. Option bit for titlecasing APIs that take an options bit set. By default, titlecasing will titlecase the first cased character of a word and lowercase all other characters. With this option, the other characters will not be modified.

<br />

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#toTitleCase(android.icu.util.ULocale,%20java.lang.String,%20android.icu.text.BreakIterator)`

Constant Value: 256 (0x00000100)

## Public methods

### charCount

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int charCount (int cp)
```

Same as `https://developer.android.com/reference/java/lang/Character#charCount(int)`. Returns the number of chars needed to represent the code point (1 or 2). This does not check the code point for validity.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to check <br /> |

| Returns ||
|---|---|
| `int` | the number of chars needed to represent the code point <br /> |

### codePointAt

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointAt (char[] text, 
                int index, 
                int limit)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(char[],%20int,%20int)`. Returns the code point at index. This examines only the characters at index and index+1.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `index` | `int`: the index of the first or only char forming the code point <br /> |
| `limit` | `int`: the limit of the valid text <br /> |

| Returns ||
|---|---|
| `int` | the code point at the index <br /> |

### codePointAt

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointAt (char[] text, 
                int index)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(char[],%20int)`. Returns the code point at index. This examines only the characters at index and index+1.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `index` | `int`: the index of the first or only char forming the code point <br /> |

| Returns ||
|---|---|
| `int` | the code point at the index <br /> |

### codePointAt

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointAt (CharSequence seq, 
                int index)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointAt(java.lang.CharSequence,%20int)`. Returns the code point at index. This examines only the characters at index and index+1.

<br />

| Parameters ||
|---|---|
| `seq` | `CharSequence`: the characters to check <br /> |
| `index` | `int`: the index of the first or only char forming the code point <br /> |

| Returns ||
|---|---|
| `int` | the code point at the index <br /> |

### codePointBefore

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointBefore (char[] text, 
                int index)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(char[],%20int)`. Returns the code point before index. This examines only the characters at index-1 and index-2.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `index` | `int`: the index after the last or only char forming the code point <br /> |

| Returns ||
|---|---|
| `int` | the code point before the index <br /> |

### codePointBefore

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointBefore (CharSequence seq, 
                int index)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(java.lang.CharSequence,%20int)`. Return the code point before index. This examines only the characters at index-1 and index-2.

<br />

| Parameters ||
|---|---|
| `seq` | `CharSequence`: the characters to check <br /> |
| `index` | `int`: the index after the last or only char forming the code point <br /> |

| Returns ||
|---|---|
| `int` | the code point before the index <br /> |

### codePointBefore

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointBefore (char[] text, 
                int index, 
                int limit)
```

Same as `https://developer.android.com/reference/java/lang/Character#codePointBefore(char[],%20int,%20int)`. Return the code point before index. This examines only the characters at index-1 and index-2.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `index` | `int`: the index after the last or only char forming the code point <br /> |
| `limit` | `int`: the start of the valid text <br /> |

| Returns ||
|---|---|
| `int` | the code point before the index <br /> |

### codePointCount

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointCount (CharSequence text, 
                int start, 
                int limit)
```

Equivalent to the `https://developer.android.com/reference/java/lang/Character#codePointCount(java.lang.CharSequence,%20int,%20int)` method, for convenience. Counts the number of code points in the range of text.

<br />

| Parameters ||
|---|---|
| `text` | `CharSequence`: the characters to check <br /> |
| `start` | `int`: the start of the range <br /> |
| `limit` | `int`: the limit of the range <br /> |

| Returns ||
|---|---|
| `int` | the number of code points in the range <br /> |

### codePointCount

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int codePointCount (char[] text, 
                int start, 
                int limit)
```

Equivalent to the `https://developer.android.com/reference/java/lang/Character#codePointCount(char[],%20int,%20int)` method, for convenience. Counts the number of code points in the range of text.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `start` | `int`: the start of the range <br /> |
| `limit` | `int`: the limit of the range <br /> |

| Returns ||
|---|---|
| `int` | the number of code points in the range <br /> |

### digit

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int digit (int ch)
```

Returnss the numeric value of a decimal digit code point.   

This is a convenience overload of `digit(int, int)` that provides a decimal radix.   
*Semantic Change:* In release 1.3.1 and prior, this treated numeric letters and other numbers as digits. This has been changed to conform to the java semantics.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to query <br /> |

| Returns ||
|---|---|
| `int` | the numeric value represented by the code point, or -1 if the code point is not a decimal digit or if its value is too large for a decimal radix <br /> |

### digit

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int digit (int ch, 
                int radix)
```

Returnss the numeric value of a decimal digit code point.   

This method observes the semantics of `java.lang.Character.digit()`. Note that this will return positive values for code points for which isDigit returns false, just like java.lang.Character.   
*Semantic Change:* In release 1.3.1 and prior, this did not treat the European letters as having a digit value, and also treated numeric letters and other numbers as digits. This has been changed to conform to the java semantics.   

A code point is a valid digit if and only if:

- ch is a decimal digit or one of the european letters, and
- the value of ch is less than the specified radix.

<br />

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to query <br /> |
| `radix` | `int`: the radix <br /> |

| Returns ||
|---|---|
| `int` | the numeric value represented by the code point in the specified radix, or -1 if the code point is not a decimal digit or if its value is too large for the radix <br /> |

### foldCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String foldCase (String str, 
                boolean defaultmapping)
```

**\[icu\]** The given string is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if any character has no case folding equivalent, the character itself is returned. "Full", multiple-code point case folding mappings are returned here. For "simple" single-code point mappings use the API foldCase(int ch, boolean defaultmapping).

<br />

| Parameters ||
|---|---|
| `str` | `String`: the String to be converted <br /> |
| `defaultmapping` | `boolean`: Indicates whether the default mappings defined in CaseFolding.txt are to be used, otherwise the mappings for dotted I and dotless i marked with 'T' in CaseFolding.txt are included. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the case folding equivalent of the character, if any; otherwise the character itself. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(int,%20boolean)`

### foldCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int foldCase (int ch, 
                boolean defaultmapping)
```

**\[icu\]** The given character is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if the character has no case folding equivalent, the character itself is returned.

This function only returns the simple, single-code point case mapping. Full case mappings should be used whenever possible because they produce better results by working on whole strings. They can map to a result string with a different length as appropriate. Full case mappings are applied by the case mapping functions that take String parameters rather than code points (int). See also the User Guide chapter on C/POSIX migration: https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the character to be converted <br /> |
| `defaultmapping` | `boolean`: Indicates whether the default mappings defined in CaseFolding.txt are to be used, otherwise the mappings for dotted I and dotless i marked with 'T' in CaseFolding.txt are included. <br /> |

| Returns ||
|---|---|
| `int` | the case folding equivalent of the character, if any; otherwise the character itself. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(java.lang.String,%20boolean)`

### foldCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int foldCase (int ch, 
                int options)
```

**\[icu\]** The given character is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if the character has no case folding equivalent, the character itself is returned.

This function only returns the simple, single-code point case mapping. Full case mappings should be used whenever possible because they produce better results by working on whole strings. They can map to a result string with a different length as appropriate. Full case mappings are applied by the case mapping functions that take String parameters rather than code points (int). See also the User Guide chapter on C/POSIX migration: https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the character to be converted <br /> |
| `options` | `int`: A bit set for special processing. Currently the recognised options are FOLD_CASE_EXCLUDE_SPECIAL_I and FOLD_CASE_DEFAULT <br /> |

| Returns ||
|---|---|
| `int` | the case folding equivalent of the character, if any; otherwise the character itself. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(java.lang.String,%20boolean)`

### foldCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String foldCase (String str, 
                int options)
```

**\[icu\]** The given string is mapped to its case folding equivalent according to UnicodeData.txt and CaseFolding.txt; if any character has no case folding equivalent, the character itself is returned. "Full", multiple-code point case folding mappings are returned here. For "simple" single-code point mappings use the API foldCase(int ch, boolean defaultmapping).

<br />

| Parameters ||
|---|---|
| `str` | `String`: the String to be converted <br /> |
| `options` | `int`: A bit set for special processing. Currently the recognised options are FOLD_CASE_EXCLUDE_SPECIAL_I and FOLD_CASE_DEFAULT <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | the case folding equivalent of the character, if any; otherwise the character itself. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#foldCase(int,%20boolean)`

### forDigit

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static char forDigit (int digit, 
                int radix)
```

Provide the java.lang.Character forDigit API, for convenience.

<br />

| Parameters ||
|---|---|
| `digit` | `int` <br /> |
| `radix` | `int` <br /> |

| Returns ||
|---|---|
| `char` | <br /> |

### getAge

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static VersionInfo getAge (int ch)
```

**\[icu\]** Returns the "age" of the code point.

The "age" is the Unicode version when the code point was first designated (as a non-character or for Private Use) or assigned a character.

This can be useful to avoid emitting code points to receiving processes that do not accept newer characters.

The data is from the UCD file DerivedAge.txt.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: The code point. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/util/VersionInfo` | the Unicode version number <br /> |

### getBidiPairedBracket

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getBidiPairedBracket (int c)
```

**\[icu\]** Maps the specified character to its paired bracket character. For Bidi_Paired_Bracket_Type!=None, this is the same as getMirror(int). Otherwise c itself is returned. See http://www.unicode.org/reports/tr9/

<br />

| Parameters ||
|---|---|
| `c` | `int`: the code point to be mapped <br /> |

| Returns ||
|---|---|
| `int` | the paired bracket code point, or c itself if there is no such mapping (Bidi_Paired_Bracket_Type=None) <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty#BIDI_PAIRED_BRACKET`
- `https://developer.android.com/reference/android/icu/lang/UProperty#BIDI_PAIRED_BRACKET_TYPE`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getMirror(int)`

### getCharFromExtendedName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCharFromExtendedName (String name)
```

**\[icu\]**

Find a Unicode character by either its name and return its code point value. All Unicode names are in uppercase. Extended names are all lowercase except for numbers and are contained within angle brackets. The names are searched in the following order

- Most current Unicode name if there is any
- Unicode 1.0 name if there is any
- Extended name in the form of "\<codepoint_type-codepoint_hex_digits\>". E.g. \<noncharacter-FFFE\>

Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

<br />

| Parameters ||
|---|---|
| `name` | `String`: codepoint name <br /> |

| Returns ||
|---|---|
| `int` | code point associated with the name or -1 if the name is not found. <br /> |

### getCharFromName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCharFromName (String name)
```

**\[icu\]**

Finds a Unicode code point by its most current Unicode name and return its code point value. All Unicode names are in uppercase. Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

| Parameters ||
|---|---|
| `name` | `String`: most current Unicode character name whose code point is to be returned <br /> |

| Returns ||
|---|---|
| `int` | code point or -1 if name is not found <br /> |

### getCharFromNameAlias

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCharFromNameAlias (String name)
```

**\[icu\]**

Find a Unicode character by its corrected name alias and return its code point value. All Unicode names are in uppercase. Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

| Parameters ||
|---|---|
| `name` | `String`: Unicode name alias whose code point is to be returned <br /> |

| Returns ||
|---|---|
| `int` | code point or -1 if name is not found <br /> |

### getCodePoint

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCodePoint (int lead, 
                int trail)
```

**\[icu\]** Returns a code point corresponding to the two surrogate code units.

<br />

| Parameters ||
|---|---|
| `lead` | `int`: the lead unit (In ICU 2.1-69 the type of both parameters was `char`.) <br /> |
| `trail` | `int`: the trail unit <br /> |

| Returns ||
|---|---|
| `int` | code point if lead and trail form a valid surrogate pair. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown when the code units do not form a valid surrogate pair |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#toCodePoint(int,%20int)`

### getCodePoint

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCodePoint (char char16)
```

**\[icu\]** Returns the code point corresponding to the BMP code point.

<br />

| Parameters ||
|---|---|
| `char16` | `char`: the BMP code point <br /> |

| Returns ||
|---|---|
| `int` | code point if argument is a valid character. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown when char16 is not a valid code point |

### getCodePoint

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCodePoint (char lead, 
                char trail)
```

**\[icu\]** Returns a code point corresponding to the two surrogate code units.

<br />

| Parameters ||
|---|---|
| `lead` | `char`: the lead char <br /> |
| `trail` | `char`: the trail char <br /> |

| Returns ||
|---|---|
| `int` | code point if surrogate characters are valid. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown when the code units do not form a valid code point |

### getCombiningClass

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getCombiningClass (int ch)
```

**\[icu\]** Returns the combining class of the argument codepoint

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose combining is to be retrieved <br /> |

| Returns ||
|---|---|
| `int` | the combining class of the codepoint <br /> |

### getDirection

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getDirection (int ch)
```

**\[icu\]** Returns the Bidirection property of a code point. For example, 0x0041 (letter A) has the LEFT_TO_RIGHT directional property.  

Result returned belongs to the interface [UCharacterDirection](https://developer.android.com/reference/android/icu/lang/UCharacterDirection)

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to be determined its direction <br /> |

| Returns ||
|---|---|
| `int` | direction constant from UCharacterDirection. <br /> |

### getDirectionality

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static byte getDirectionality (int cp)
```

Equivalent to the `https://developer.android.com/reference/java/lang/Character#getDirectionality(char)` method, for convenience. Returns a byte representing the directionality of the character. **\[icu\] Note:** Unlike `https://developer.android.com/reference/java/lang/Character#getDirectionality(char)`, this returns DIRECTIONALITY_LEFT_TO_RIGHT for undefined or out-of-bounds characters. **\[icu\] Note:** The return value must be tested using the constants defined in `https://developer.android.com/reference/android/icu/lang/UCharacterDirection` and its interface `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection` since the values are different from the ones defined by `java.lang.Character`.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to check <br /> |

| Returns ||
|---|---|
| `byte` | the directionality of the code point <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#getDirection(int)`

### getExtendedName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getExtendedName (int ch)
```

**\[icu\]** Returns a name for a valid codepoint. Unlike, getName(int) and getName1_0(int), this method will return a name even for codepoints that are not assigned a name in UnicodeData.txt.

The names are returned in the following order.

- Most current Unicode name if there is any
- Unicode 1.0 name if there is any
- Extended name in the form of "\<codepoint_type-codepoint_hex_digits\>". E.g., \<noncharacter-fffe\>

Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point for which to get the name <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a name for the argument codepoint <br /> |

### getExtendedNameIterator

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static ValueIterator getExtendedNameIterator ()
```

**\[icu\]**

Returns an iterator for character names, iterating over codepoints.

This API only gets the iterator for the extended names. For modern, most up-to-date Unicode names use getNameIterator() or for older 1.0 Unicode names use get1_0NameIterator().

Example of use:  

```
ValueIterator iterator = UCharacter.getExtendedNameIterator();
ValueIterator.Element element = new ValueIterator.Element();
while (iterator.next(element)) {
    System.out.println("Codepoint \\u" +
                       Integer.toHexString(element.codepoint) +
                       " has the name " + (String)element.value);
}
```

The maximal range which the name iterator iterates is from

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/util/ValueIterator` | an iterator <br /> |

### getHanNumericValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getHanNumericValue (int ch)
```

**\[icu\]** Returns the numeric value of a Han character.

This returns the value of Han 'numeric' code points, including those for zero, ten, hundred, thousand, ten thousand, and hundred million. This includes both the standard and 'checkwriting' characters, the 'big circle' zero character, and the standard zero character.

Note: The Unicode Standard has numeric values for more Han characters recognized by this method (see `https://developer.android.com/reference/android/icu/lang/UCharacter#getNumericValue(int)` and the UCD file DerivedNumericValues.txt), and a `https://developer.android.com/reference/android/icu/text/NumberFormat` can be used with a Chinese `https://developer.android.com/reference/android/icu/text/NumberingSystem`.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to query <br /> |

| Returns ||
|---|---|
| `int` | value if it is a Han 'numeric character,' otherwise return -1. <br /> |

### getIdentifierTypes

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getIdentifierTypes (int c, 
                EnumSet<UCharacter.IdentifierType> types)
```

Writes code point c's Identifier_Type as a set of IdentifierType values and returns the number of types. The set is cleared before c's types are added.

Used for UTS #39 General Security Profile for Identifiers (https://www.unicode.org/reports/tr39/#General_Security_Profile).

Each code point maps to a *set* of IdentifierType values. There is always at least one type. Only some of the types can be combined with others, and usually only a small number of types occur together. Future versions might add additional types. See UTS #39 and its data files for details.

<br />

| Parameters ||
|---|---|
| `c` | `int`: code point <br /> |
| `types` | `EnumSet`: output set <br /> |

| Returns ||
|---|---|
| `int` | number of values in c's Identifier_Type <br /> |

### getIntPropertyMaxValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getIntPropertyMaxValue (int type)
```

**\[icu\]** Returns the maximum value for an integer/binary Unicode property. Can be used together with UCharacter.getIntPropertyMinValue(int) to allocate arrays of android.icu.text.UnicodeSet or similar. Examples for min/max values (for Unicode 3.2):

- UProperty.BIDI_CLASS: 0/18 (UCharacterDirection.LEFT_TO_RIGHT/UCharacterDirection.BOUNDARY_NEUTRAL)
- UProperty.SCRIPT: 0/45 (UScript.COMMON/UScript.TAGBANWA)
- UProperty.IDEOGRAPHIC: 0/1 (false/true)

For undefined UProperty constant values, min/max values will be 0/-1.

<br />

<br />

| Parameters ||
|---|---|
| `type` | `int`: UProperty selector constant, identifies which binary property to check. Must be UProperty.BINARY_START \<= type \< UProperty.BINARY_LIMIT or UProperty.INT_START \<= type \< UProperty.INT_LIMIT. <br /> |

| Returns ||
|---|---|
| `int` | Maximum value returned by u_getIntPropertyValue for a Unicode property. \<= 0 if the property selector 'type' is out of range. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(int,%20int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeVersion()`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMaxValue(int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyValue(int,%20int)`

### getIntPropertyMinValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getIntPropertyMinValue (int type)
```

**\[icu\]** Returns the minimum value for an integer/binary Unicode property type. Can be used together with UCharacter.getIntPropertyMaxValue(int) to allocate arrays of android.icu.text.UnicodeSet or similar.

<br />

| Parameters ||
|---|---|
| `type` | `int`: UProperty selector constant, identifies which binary property to check. Must be UProperty.BINARY_START \<= type \< UProperty.BINARY_LIMIT or UProperty.INT_START \<= type \< UProperty.INT_LIMIT. <br /> |

| Returns ||
|---|---|
| `int` | Minimum value returned by UCharacter.getIntPropertyValue(int) for a Unicode property. 0 if the property selector 'type' is out of range. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(int,%20int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeVersion()`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMaxValue(int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyValue(int,%20int)`

### getIntPropertyValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getIntPropertyValue (int ch, 
                int type)
```

**\[icu\]** Returns the property value for a Unicode property type of a code point. Also returns binary and mask property values.

Unicode, especially in version 3.2, defines many more properties than the original set in UnicodeData.txt.

The properties APIs are intended to reflect Unicode properties as defined in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR). For details about the properties see http://www.unicode.org/.

For names of Unicode properties see the UCD file PropertyAliases.txt.

```
Sample usage:
int ea = UCharacter.getIntPropertyValue(c, UProperty.EAST_ASIAN_WIDTH);
int ideo = UCharacter.getIntPropertyValue(c, UProperty.IDEOGRAPHIC);
boolean b = (ideo == 1) ? true : false;
```

<br />

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to test. <br /> |
| `type` | `int`: UProperty selector constant, identifies which binary property to check. Must be UProperty.BINARY_START \<= type \< UProperty.BINARY_LIMIT or UProperty.INT_START \<= type \< UProperty.INT_LIMIT or UProperty.MASK_START \<= type \< UProperty.MASK_LIMIT. <br /> |

| Returns ||
|---|---|
| `int` | numeric value that is directly the property value or, for enumerated properties, corresponds to the numeric value of the enumerated constant of the respective property value type (`https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterCategory`, `https://developer.android.com/reference/android/icu/lang/UCharacterEnums.ECharacterDirection`, `https://developer.android.com/reference/android/icu/lang/UCharacter.DecompositionType`, etc.). Returns 0 or 1 (for false / true) for binary Unicode properties. Returns a bit-mask for mask properties. Returns 0 if 'type' is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(int,%20int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMinValue(int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getIntPropertyMaxValue(int)`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#getUnicodeVersion()`

### getMirror

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getMirror (int ch)
```

**\[icu\]** Maps the specified code point to a "mirror-image" code point. For code points with the "mirrored" property, implementations sometimes need a "poor man's" mapping to another code point such that the default glyph may serve as the mirror-image of the default glyph of the specified code point.  

This is useful for text conversion to and from codepages with visual order, and for displays without glyph selection capabilities.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose mirror is to be retrieved <br /> |

| Returns ||
|---|---|
| `int` | another code point that may serve as a mirror-image substitute, or ch itself if there is no such mapping or ch does not have the "mirrored" property <br /> |

### getName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getName (int ch)
```

**\[icu\]** Returns the most current Unicode name of the argument code point, or null if the character is unassigned or outside the range `UCharacter.MIN_VALUE` and `UCharacter.MAX_VALUE` or does not have a name.   

Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point for which to get the name <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | most current Unicode name <br /> |

### getName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getName (String s, 
                String separator)
```

**\[icu\]** Returns the names for each of the characters in a string

<br />

| Parameters ||
|---|---|
| `s` | `String`: string to format <br /> |
| `separator` | `String`: string to go between names <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | string of names <br /> |

### getNameAlias

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getNameAlias (int ch)
```

**\[icu\]** Returns the corrected name from NameAliases.txt if there is one. Returns null if the character is unassigned or outside the range UCharacter.MIN_VALUE and UCharacter.MAX_VALUE or does not have a name.   

Note calling any methods related to code point names, e.g. `getName()` incurs a one-time initialization cost to construct the name tables.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point for which to get the name alias <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | Unicode name alias, or null <br /> |

### getNameIterator

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static ValueIterator getNameIterator ()
```

**\[icu\]**

Returns an iterator for character names, iterating over codepoints.

This API only gets the iterator for the modern, most up-to-date Unicode names. For older 1.0 Unicode names use get1_0NameIterator() or for extended names use getExtendedNameIterator().

Example of use:  

```
ValueIterator iterator = UCharacter.getNameIterator();
ValueIterator.Element element = new ValueIterator.Element();
while (iterator.next(element)) {
    System.out.println("Codepoint \\u" +
                       Integer.toHexString(element.codepoint) +
                       " has the name " + (String)element.value);
}
```

The maximal range which the name iterator iterates is from UCharacter.MIN_VALUE to UCharacter.MAX_VALUE.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/util/ValueIterator` | an iterator <br /> |

### getNumericValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getNumericValue (int ch)
```

Returns the numeric value of the code point as a nonnegative integer.   

If the code point does not have a numeric value, then -1 is returned.   

If the code point has a numeric value that cannot be represented as a nonnegative integer (for example, a fractional value), then -2 is returned.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to query <br /> |

| Returns ||
|---|---|
| `int` | the numeric value of the code point, or -1 if it has no numeric value, or -2 if it has a numeric value that cannot be represented as a nonnegative integer <br /> |

### getPropertyEnum

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getPropertyEnum (CharSequence propertyAlias)
```

**\[icu\]** Return the UProperty selector for a given property name, as specified in the Unicode database file PropertyAliases.txt. Short, long, and any other variants are recognized. In addition, this function maps the synthetic names "gcm" / "General_Category_Mask" to the property UProperty.GENERAL_CATEGORY_MASK. These names are not in PropertyAliases.txt.

<br />

| Parameters ||
|---|---|
| `propertyAlias` | `CharSequence`: the property name to be matched. The name is compared using "loose matching" as described in PropertyAliases.txt. <br /> |

| Returns ||
|---|---|
| `int` | a UProperty enum. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown if propertyAlias is not recognized. |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`

### getPropertyName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getPropertyName (int property, 
                int nameChoice)
```

**\[icu\]** Return the Unicode name for a given property, as given in the Unicode database file PropertyAliases.txt. Most properties have more than one name. The nameChoice determines which one is returned. In addition, this function maps the property UProperty.GENERAL_CATEGORY_MASK to the synthetic names "gcm" / "General_Category_Mask". These names are not in PropertyAliases.txt.

<br />

| Parameters ||
|---|---|
| `property` | `int`: UProperty selector. <br /> |
| `nameChoice` | `int`: UProperty.NameChoice selector for which name to get. All properties have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by UProperty.NameChoice.LONG + i, where i=1, 2,... <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a name, or null if Unicode explicitly defines no name ("n/a") for a given property/nameChoice. If a given nameChoice throws an exception, then all larger values of nameChoice will throw an exception. If null is returned for a given nameChoice, then other nameChoice values may return non-null results. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown if property or nameChoice are invalid. |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`
- `https://developer.android.com/reference/android/icu/lang/UProperty.NameChoice`

### getPropertyValueEnum

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getPropertyValueEnum (int property, 
                CharSequence valueAlias)
```

**\[icu\]** Return the property value integer for a given value name, as specified in the Unicode database file PropertyValueAliases.txt. Short, long, and any other variants are recognized. Note: Some of the names in PropertyValueAliases.txt will only be recognized with UProperty.GENERAL_CATEGORY_MASK, not UProperty.GENERAL_CATEGORY. These include: "C" / "Other", "L" / "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P" / "Punctuation", "S" / "Symbol", and "Z" / "Separator".

<br />

| Parameters ||
|---|---|
| `property` | `int`: UProperty selector constant. UProperty.INT_START \<= property \< UProperty.INT_LIMIT or UProperty.BINARY_START \<= property \< UProperty.BINARY_LIMIT or UProperty.MASK_START \< = property \< UProperty.MASK_LIMIT. Only these properties can be enumerated. <br /> |
| `valueAlias` | `CharSequence`: the value name to be matched. The name is compared using "loose matching" as described in PropertyValueAliases.txt. <br /> |

| Returns ||
|---|---|
| `int` | a value integer. Note: UProperty.GENERAL_CATEGORY values are mask values produced by left-shifting 1 by UCharacter.getType(). This allows grouped categories such as \[:L:\] to be represented. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if property is not a valid UProperty selector or valueAlias is not a value of this property |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`

### getPropertyValueName

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String getPropertyValueName (int property, 
                int value, 
                int nameChoice)
```

**\[icu\]** Return the Unicode name for a given property value, as given in the Unicode database file PropertyValueAliases.txt. Most values have more than one name. The nameChoice determines which one is returned. Note: Some of the names in PropertyValueAliases.txt can only be retrieved using UProperty.GENERAL_CATEGORY_MASK, not UProperty.GENERAL_CATEGORY. These include: "C" / "Other", "L" / "Letter", "LC" / "Cased_Letter", "M" / "Mark", "N" / "Number", "P" / "Punctuation", "S" / "Symbol", and "Z" / "Separator".

<br />

| Parameters ||
|---|---|
| `property` | `int`: UProperty selector constant. UProperty.INT_START \<= property \< UProperty.INT_LIMIT or UProperty.BINARY_START \<= property \< UProperty.BINARY_LIMIT or UProperty.MASK_START \< = property \< UProperty.MASK_LIMIT. If out of range, null is returned. <br /> |
| `value` | `int`: selector for a value for the given property. In general, valid values range from 0 up to some maximum. There are a few exceptions: (1.) UProperty.BLOCK values begin at the non-zero value BASIC_LATIN.getID(). (2.) UProperty.CANONICAL_COMBINING_CLASS values are not contiguous and range from 0..240. (3.) UProperty.GENERAL_CATEGORY_MASK values are mask values produced by left-shifting 1 by UCharacter.getType(). This allows grouped categories such as \[:L:\] to be represented. Mask values are non-contiguous. <br /> |
| `nameChoice` | `int`: UProperty.NameChoice selector for which name to get. All values have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by UProperty.NameChoice.LONG + i, where i=1, 2,... <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a name, or null if Unicode explicitly defines no name ("n/a") for a given property/value/nameChoice. If a given nameChoice throws an exception, then all larger values of nameChoice will throw an exception. If null is returned for a given nameChoice, then other nameChoice values may return non-null results. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | thrown if property, value, or nameChoice are invalid. |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`
- `https://developer.android.com/reference/android/icu/lang/UProperty.NameChoice`

### getType

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int getType (int ch)
```

Returns a value indicating a code point's Unicode category. Up-to-date Unicode implementation of java.lang.Character.getType() except for the above mentioned code points that had their category changed.  

Return results are constants from the interface [UCharacterCategory](https://developer.android.com/reference/android/icu/lang/UCharacterCategory)  
*NOTE:* the UCharacterCategory values are *not* compatible with those returned by java.lang.Character.getType. UCharacterCategory values match the ones used in ICU4C, while java.lang.Character type values, though similar, skip the value 17.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose type is to be determined <br /> |

| Returns ||
|---|---|
| `int` | category which is a value of UCharacterCategory <br /> |

### getTypeIterator

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static RangeValueIterator getTypeIterator ()
```

**\[icu\]**

Returns an iterator for character types, iterating over codepoints.

Example of use:  

```
RangeValueIterator iterator = UCharacter.getTypeIterator();
RangeValueIterator.Element element = new RangeValueIterator.Element();
while (iterator.next(element)) {
    System.out.println("Codepoint \\u" +
                       Integer.toHexString(element.start) +
                       " to codepoint \\u" +
                       Integer.toHexString(element.limit - 1) +
                       " has the character type " +
                       element.value);
}
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/util/RangeValueIterator` | an iterator <br /> |

### getUnicodeNumericValue

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static double getUnicodeNumericValue (int ch)
```

**\[icu\]** Returns the numeric value for a Unicode code point as defined in the Unicode Character Database.

A "double" return type is necessary because some numeric values are fractions, negative, or too large for int.

For characters without any numeric values in the Unicode Character Database, this function will return NO_NUMERIC_VALUE. Note: This is different from the Unicode Standard which specifies NaN as the default value.

*API Change:* In release 2.2 and prior, this API has a return type int and returns -1 when the argument ch does not have a corresponding numeric value. This has been changed to synch with ICU4C This corresponds to the ICU4C function u_getNumericValue.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: Code point to get the numeric value for. <br /> |

| Returns ||
|---|---|
| `double` | numeric value of ch, or NO_NUMERIC_VALUE if none is defined. <br /> |

### getUnicodeVersion

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static VersionInfo getUnicodeVersion ()
```

**\[icu\]** Returns the version of Unicode data used.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/util/VersionInfo` | the unicode version number used <br /> |

### hasBinaryProperty

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean hasBinaryProperty (int ch, 
                int property)
```

**\[icu\]** Check a binary Unicode property for a code point.

Unicode, especially in version 3.2, defines many more properties than the original set in UnicodeData.txt.

This API is intended to reflect Unicode properties as defined in the Unicode Character Database (UCD) and Unicode Technical Reports (UTR).

For details about the properties see <http://www.unicode.org/>.

For names of Unicode properties see the UCD file PropertyAliases.txt.

This API does not check the validity of the codepoint.

Important: If ICU is built with UCD files from Unicode versions below 3.2, then properties marked with "new" are not or not fully available.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to test. <br /> |
| `property` | `int`: selector constant from android.icu.lang.UProperty, identifies which binary property to check. <br /> |

| Returns ||
|---|---|
| `boolean` | true or false according to the binary Unicode property value for ch. Also false if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`

### hasBinaryProperty

Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean hasBinaryProperty (CharSequence s, 
                int property)
```

**\[icu\]** Returns true if the property is true for the string. Same as `https://developer.android.com/reference/android/icu/lang/UCharacter#hasBinaryProperty(int,%20int)` if the string contains exactly one code point.

Most properties apply only to single code points. [UTS #51 Unicode Emoji](https://www.unicode.org/reports/tr51/#Emoji_Sets) defines several properties of strings.

<br />

| Parameters ||
|---|---|
| `s` | `CharSequence`: String to test. <br /> |
| `property` | `int`: UProperty selector constant, identifies which binary property to check. Must be BINARY_START\<=which\<BINARY_LIMIT. <br /> |

| Returns ||
|---|---|
| `boolean` | true or false according to the binary Unicode property value for the string. Also false if `property` is out of bounds or if the Unicode version does not have data for the property at all. <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UProperty`

### hasIdentifierType

Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean hasIdentifierType (int c, 
                UCharacter.IdentifierType type)
```

Does the set of Identifier_Type values code point c contain the given type?

Used for UTS #39 General Security Profile for Identifiers (https://www.unicode.org/reports/tr39/#General_Security_Profile).

Each code point maps to a *set* of UIdentifierType values.

<br />

| Parameters ||
|---|---|
| `c` | `int`: code point <br /> |
| `type` | `UCharacter.IdentifierType`: Identifier_Type to check <br /> |

| Returns ||
|---|---|
| `boolean` | true if type is in Identifier_Type(c) <br /> |

### isBMP

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isBMP (int ch)
```

**\[icu\]** Determines if the code point is in the BMP plane.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it is not a supplementary character <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is not a supplementary character <br /> |

### isBaseForm

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isBaseForm (int ch)
```

**\[icu\]** Determines whether the specified code point is of base form. A code point of base form does not graphically combine with preceding characters, and is neither a control nor a format character.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it is of base form <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point is of base form <br /> |

### isDefined

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isDefined (int ch)
```

Determines if a code point has a defined meaning in the up-to-date Unicode standard. E.g. supplementary code points though allocated space are not defined in Unicode yet.  

Up-to-date Unicode implementation of java.lang.Character.isDefined()

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it is defined in the most current version of Unicode <br /> |

| Returns ||
|---|---|
| `boolean` | true if this code point is defined in unicode <br /> |

### isDigit

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isDigit (int ch)
```

Determines if a code point is a Java digit.   

This method observes the semantics of `java.lang.Character.isDigit()`. It returns true for decimal digits only.   
*Semantic Change:* In release 1.3.1 and prior, this treated numeric letters and other numbers as digits. This has been changed to conform to the java semantics.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to query <br /> |

| Returns ||
|---|---|
| `boolean` | true if this code point is a digit <br /> |

### isHighSurrogate

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isHighSurrogate (int codePoint)
```

Same as `https://developer.android.com/reference/java/lang/Character#isHighSurrogate(char)`, except that the ICU version accepts `int` for code points.

<br />

| Parameters ||
|---|---|
| `codePoint` | `int`: the code point to check (In ICU 3.0-69 the type of this parameter was `char`.) <br /> |

| Returns ||
|---|---|
| `boolean` | true if codePoint is a high (lead) surrogate <br /> |

### isHighSurrogate

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isHighSurrogate (char ch)
```

Same as `https://developer.android.com/reference/java/lang/Character#isHighSurrogate(char)`,

<br />

| Parameters ||
|---|---|
| `ch` | `char`: the char to check <br /> |

| Returns ||
|---|---|
| `boolean` | true if ch is a high (lead) surrogate <br /> |

### isISOControl

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isISOControl (int ch)
```

Determines if the specified code point is an ISO control character. A code point is considered to be an ISO control character if it is in the range \\u0000 through \\u001F or in the range \\u007F through \\u009F.  

Up-to-date Unicode implementation of java.lang.Character.isISOControl()

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is an ISO control character <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is a ISO control character <br /> |

### isIdentifierIgnorable

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isIdentifierIgnorable (int ch)
```

Determines if the specified code point should be regarded as an ignorable character in a Java identifier. A character is Java-identifier-ignorable if it has the general category Cf Formatting Control, or it is a non-Java-whitespace ISO control: U+0000..U+0008, U+000E..U+001B, U+007F..U+009F.  

Up-to-date Unicode implementation of java.lang.Character.isIdentifierIgnorable().  

See [UTR #8](https://www.unicode.org/reports/tr8/).

Note that Unicode just recommends to ignore Cf (format controls).

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it can be ignored in a Unicode identifier. <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point is ignorable <br /> |

### isJavaIdentifierPart

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isJavaIdentifierPart (int cp)
```

Compatibility override of Java method, delegates to java.lang.Character.isJavaIdentifierPart.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point can continue a java identifier. <br /> |

### isJavaIdentifierStart

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isJavaIdentifierStart (int cp)
```

Compatibility override of Java method, delegates to java.lang.Character.isJavaIdentifierStart.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point can start a java identifier. <br /> |

### isLegal

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLegal (int ch)
```

**\[icu\]** A code point is illegal if and only if

- Out of bounds, less than 0 or greater than UCharacter.MAX_VALUE
- A surrogate value, 0xD800 to 0xDFFF
- Not-a-character, having the form 0x xxFFFF or 0x xxFFFE

Note: legal does not mean that it is assigned in this version of Unicode.

<br />

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is a legal code point by itself <br /> |

| Returns ||
|---|---|
| `boolean` | true if and only if legal. <br /> |

### isLegal

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLegal (String str)
```

**\[icu\]** A string is legal iff all its code points are legal. A code point is illegal if and only if

- Out of bounds, less than 0 or greater than UCharacter.MAX_VALUE
- A surrogate value, 0xD800 to 0xDFFF
- Not-a-character, having the form 0x xxFFFF or 0x xxFFFE

Note: legal does not mean that it is assigned in this version of Unicode.

<br />

<br />

| Parameters ||
|---|---|
| `str` | `String`: containing code points to examin <br /> |

| Returns ||
|---|---|
| `boolean` | true if and only if legal. <br /> |

### isLetter

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLetter (int ch)
```

Determines if the specified code point is a letter. Up-to-date Unicode implementation of java.lang.Character.isLetter()

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is a letter <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is a letter <br /> |

### isLetterOrDigit

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLetterOrDigit (int ch)
```

Determines if the specified code point is a letter or digit. **\[icu\] Note:** This method, unlike java.lang.Character does not regard the ascii characters 'A' - 'Z' and 'a' - 'z' as digits.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is a letter or a digit <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is a letter or a digit <br /> |

### isLowSurrogate

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLowSurrogate (char ch)
```

Same as `https://developer.android.com/reference/java/lang/Character#isLowSurrogate(char)`,

<br />

| Parameters ||
|---|---|
| `ch` | `char`: the char to check <br /> |

| Returns ||
|---|---|
| `boolean` | true if ch is a low (trail) surrogate <br /> |

### isLowSurrogate

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLowSurrogate (int codePoint)
```

Same as `https://developer.android.com/reference/java/lang/Character#isLowSurrogate(char)`, except that the ICU version accepts `int` for code points.

<br />

| Parameters ||
|---|---|
| `codePoint` | `int`: the code point to check (In ICU 3.0-69 the type of this parameter was `char`.) <br /> |

| Returns ||
|---|---|
| `boolean` | true if codePoint is a low (trail) surrogate <br /> |

### isLowerCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isLowerCase (int ch)
```

Determines if the specified code point is a lowercase character. UnicodeData only contains case mappings for code points where they are one-to-one mappings; it also omits information about context-sensitive case mappings.  

For more information about Unicode case mapping please refer to the [Technical report #21](https://www.unicode.org/reports/tr21/).  

Up-to-date Unicode implementation of java.lang.Character.isLowerCase()

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is in lowercase <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is a lowercase character <br /> |

### isMirrored

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isMirrored (int ch)
```

Determines whether the code point has the "mirrored" property. This property is set for characters that are commonly used in Right-To-Left contexts and need to be displayed with a "mirrored" glyph.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose mirror is to be determined <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point has the "mirrored" property <br /> |

### isPrintable

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isPrintable (int ch)
```

**\[icu\]** Determines whether the specified code point is a printable character according to the Unicode standard.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it is printable <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point is a printable character <br /> |

### isSpaceChar

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSpaceChar (int ch)
```

Determines if the specified code point is a Unicode specified space character, i.e. if code point is in the category Zs, Zl and Zp. Up-to-date Unicode implementation of java.lang.Character.isSpaceChar().

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is a space <br /> |

| Returns ||
|---|---|
| `boolean` | true if the specified code point is a space character <br /> |

### isSupplementary

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSupplementary (int ch)
```

**\[icu\]** Determines if the code point is a supplementary character. A code point is a supplementary character if and only if it is greater than [SUPPLEMENTARY_MIN_VALUE](https://developer.android.com/reference/android/icu/lang/UCharacter#SUPPLEMENTARY_MIN_VALUE)

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to be determined if it is in the supplementary plane <br /> |

| Returns ||
|---|---|
| `boolean` | true if code point is a supplementary character <br /> |

### isSupplementaryCodePoint

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSupplementaryCodePoint (int cp)
```

Same as `https://developer.android.com/reference/java/lang/Character#isSupplementaryCodePoint(int)`.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to check <br /> |

| Returns ||
|---|---|
| `boolean` | true if cp is a supplementary code point <br /> |

### isSurrogatePair

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSurrogatePair (int high, 
                int low)
```

Same as `https://developer.android.com/reference/java/lang/Character#isSurrogatePair(char,%20char)`, except that the ICU version accepts `int` for code points.

<br />

| Parameters ||
|---|---|
| `high` | `int`: the high (lead) unit (In ICU 3.0-69 the type of both parameters was `char`.) <br /> |
| `low` | `int`: the low (trail) unit <br /> |

| Returns ||
|---|---|
| `boolean` | true if high, low form a surrogate pair <br /> |

### isSurrogatePair

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isSurrogatePair (char high, 
                char low)
```

Same as `https://developer.android.com/reference/java/lang/Character#isSurrogatePair(char,%20char)`.

<br />

| Parameters ||
|---|---|
| `high` | `char`: the high (lead) char <br /> |
| `low` | `char`: the low (trail) char <br /> |

| Returns ||
|---|---|
| `boolean` | true if high, low form a surrogate pair <br /> |

### isTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isTitleCase (int ch)
```

Determines if the specified code point is a titlecase character. UnicodeData only contains case mappings for code points where they are one-to-one mappings; it also omits information about context-sensitive case mappings.  

For more information about Unicode case mapping please refer to the [Technical report #21](https://www.unicode.org/reports/tr21/).  

Up-to-date Unicode implementation of java.lang.Character.isTitleCase().

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is in title case <br /> |

| Returns ||
|---|---|
| `boolean` | true if the specified code point is a titlecase character <br /> |

### isUAlphabetic

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUAlphabetic (int ch)
```

**\[icu\]**

Check if a code point has the Alphabetic Unicode property.

Same as UCharacter.hasBinaryProperty(ch, UProperty.ALPHABETIC).

Different from UCharacter.isLetter(ch)!

<br />

| Parameters ||
|---|---|
| `ch` | `int`: codepoint to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isULowercase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isULowercase (int ch)
```

**\[icu\]**

Check if a code point has the Lowercase Unicode property.

Same as UCharacter.hasBinaryProperty(ch, UProperty.LOWERCASE).

This is different from UCharacter.isLowerCase(ch)!

<br />

| Parameters ||
|---|---|
| `ch` | `int`: codepoint to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isUUppercase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUUppercase (int ch)
```

**\[icu\]**

Check if a code point has the Uppercase Unicode property.

Same as UCharacter.hasBinaryProperty(ch, UProperty.UPPERCASE).

This is different from UCharacter.isUpperCase(ch)!

<br />

| Parameters ||
|---|---|
| `ch` | `int`: codepoint to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isUWhiteSpace

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUWhiteSpace (int ch)
```

**\[icu\]**

Check if a code point has the White_Space Unicode property.

Same as UCharacter.hasBinaryProperty(ch, UProperty.WHITE_SPACE).

This is different from both UCharacter.isSpace(ch) and UCharacter.isWhitespace(ch)!

<br />

| Parameters ||
|---|---|
| `ch` | `int`: codepoint to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | <br /> |

### isUnicodeIdentifierPart

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUnicodeIdentifierPart (int ch)
```

Determines if the specified character is permissible as a non-initial character of an identifier according to UAX #31 Unicode Identifier and Pattern Syntax.

Same as Unicode ID_Continue (`https://developer.android.com/reference/android/icu/lang/UProperty#ID_CONTINUE`).

Note that this differs from `https://developer.android.com/reference/java/lang/Character#isUnicodeIdentifierPart(char)` which implements a different identifier profile.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point may occur as a non-initial character of an identifier <br /> |

### isUnicodeIdentifierStart

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUnicodeIdentifierStart (int ch)
```

Determines if the specified character is permissible as the first character in an identifier according to UAX #31 Unicode Identifier and Pattern Syntax.

Same as Unicode ID_Start (`https://developer.android.com/reference/android/icu/lang/UProperty#ID_START`).

Note that this differs from `https://developer.android.com/reference/java/lang/Character#isUnicodeIdentifierStart(char)` which implements a different identifier profile.

<br />

| Parameters ||
|---|---|
| `ch` | `int`: the code point to be tested <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point may start an identifier <br /> |

### isUpperCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isUpperCase (int ch)
```

Determines if the specified code point is an uppercase character. UnicodeData only contains case mappings for code point where they are one-to-one mappings; it also omits information about context-sensitive case mappings.  

For language specific case conversion behavior, use toUpperCase(locale, str).   

For example, the case conversion for dot-less i and dotted I in Turkish, or for final sigma in Greek. For more information about Unicode case mapping please refer to the [Technical report #21](https://www.unicode.org/reports/tr21/).  

Up-to-date Unicode implementation of java.lang.Character.isUpperCase().

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is in uppercase <br /> |

| Returns ||
|---|---|
| `boolean` | true if the code point is an uppercase character <br /> |

### isValidCodePoint

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isValidCodePoint (int cp)
```

Is cp a Unicode code point U+0000..U+10FFFF? See [Unicode Glossary: Code Point](https://www.unicode.org/glossary/#code_point). Equivalent to `https://developer.android.com/reference/java/lang/Character#isValidCodePoint(int)`.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to check <br /> |

| Returns ||
|---|---|
| `boolean` | true if cp is a valid code point <br /> |

**See also:**

- `https://developer.android.com/`
- `https://developer.android.com/`
- `https://developer.android.com/`

### isWhitespace

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isWhitespace (int ch)
```

Determines if the specified code point is a white space character. A code point is considered to be an whitespace character if and only if it satisfies one of the following criteria:

- It is a Unicode Separator character (categories "Z" = "Zs" or "Zl" or "Zp"), but is not also a non-breaking space (\\u00A0 or \\u2007 or \\u202F).
- It is \\u0009, HORIZONTAL TABULATION.
- It is \\u000A, LINE FEED.
- It is \\u000B, VERTICAL TABULATION.
- It is \\u000C, FORM FEED.
- It is \\u000D, CARRIAGE RETURN.
- It is \\u001C, FILE SEPARATOR.
- It is \\u001D, GROUP SEPARATOR.
- It is \\u001E, RECORD SEPARATOR.
- It is \\u001F, UNIT SEPARATOR.

This API tries to sync with the semantics of Java's java.lang.Character.isWhitespace(), but it may not return the exact same results because of the Unicode version difference.

Note: Unicode 4.0.1 changed U+200B ZERO WIDTH SPACE from a Space Separator (Zs) to a Format Control (Cf). Since then, isWhitespace(0x200b) returns false. See http://www.unicode.org/versions/Unicode4.0.1/

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point to determine if it is a white space <br /> |

| Returns ||
|---|---|
| `boolean` | true if the specified code point is a white space character <br /> |

### offsetByCodePoints

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int offsetByCodePoints (CharSequence text, 
                int index, 
                int codePointOffset)
```

Equivalent to the `https://developer.android.com/reference/java/lang/Character#offsetByCodePoints(java.lang.CharSequence,%20int,%20int)` method, for convenience. Adjusts the char index by a code point offset.

<br />

| Parameters ||
|---|---|
| `text` | `CharSequence`: the characters to check <br /> |
| `index` | `int`: the index to adjust <br /> |
| `codePointOffset` | `int`: the number of code points by which to offset the index <br /> |

| Returns ||
|---|---|
| `int` | the adjusted index <br /> |

### offsetByCodePoints

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int offsetByCodePoints (char[] text, 
                int start, 
                int count, 
                int index, 
                int codePointOffset)
```

Equivalent to the `https://developer.android.com/reference/java/lang/Character#offsetByCodePoints(char[],%20int,%20int,%20int,%20int)` method, for convenience. Adjusts the char index by a code point offset.

<br />

| Parameters ||
|---|---|
| `text` | `char`: the characters to check <br /> |
| `start` | `int`: the start of the range to check <br /> |
| `count` | `int`: the length of the range to check <br /> |
| `index` | `int`: the index to adjust <br /> |
| `codePointOffset` | `int`: the number of code points by which to offset the index <br /> |

| Returns ||
|---|---|
| `int` | the adjusted index <br /> |

### toChars

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toChars (int cp, 
                char[] dst, 
                int dstIndex)
```

Same as `https://developer.android.com/reference/java/lang/Character#toChars(int,%20char[],%20int)`. Writes the chars representing the code point into the destination at the given index.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to convert <br /> |
| `dst` | `char`: the destination array into which to put the char(s) representing the code point <br /> |
| `dstIndex` | `int`: the index at which to put the first (or only) char <br /> |

| Returns ||
|---|---|
| `int` | the count of the number of chars written (1 or 2) <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if cp is not a valid code point |

### toChars

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static char[] toChars (int cp)
```

Same as `https://developer.android.com/reference/java/lang/Character#toChars(int)`. Returns a char array representing the code point.

<br />

| Parameters ||
|---|---|
| `cp` | `int`: the code point to convert <br /> |

| Returns ||
|---|---|
| `char[]` | an array containing the char(s) representing the code point <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if cp is not a valid code point |

### toCodePoint

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toCodePoint (char high, 
                char low)
```

Same as `https://developer.android.com/reference/java/lang/Character#toCodePoint(char,%20char)`. Returns the code point represented by the two surrogate code units. This does not check the surrogate pair for validity.

<br />

| Parameters ||
|---|---|
| `high` | `char`: the high (lead) surrogate <br /> |
| `low` | `char`: the low (trail) surrogate <br /> |

| Returns ||
|---|---|
| `int` | the code point formed by the surrogate pair <br /> |

### toCodePoint

Added in [API level 33](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toCodePoint (int high, 
                int low)
```

Same as `https://developer.android.com/reference/java/lang/Character#toCodePoint(char,%20char)`, except that the ICU version accepts `int` for code points. Returns the code point represented by the two surrogate code units. This does not check the surrogate pair for validity.

<br />

| Parameters ||
|---|---|
| `high` | `int`: the high (lead) surrogate (In ICU 3.0-69 the type of both parameters was `char`.) <br /> |
| `low` | `int`: the low (trail) surrogate <br /> |

| Returns ||
|---|---|
| `int` | the code point formed by the surrogate pair <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#getCodePoint(int,%20int)`

### toLowerCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toLowerCase (String str)
```

Returns the lowercase version of the argument string. Casing is dependent on the default locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | lowercase version of the argument string <br /> |

### toLowerCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toLowerCase (int ch)
```

The given code point is mapped to its lowercase equivalent; if the code point has no lowercase equivalent, the code point itself is returned. Up-to-date Unicode implementation of java.lang.Character.toLowerCase()

This function only returns the simple, single-code point case mapping. Full case mappings should be used whenever possible because they produce better results by working on whole strings. They take into account the string context and the language and can map to a result string with a different length as appropriate. Full case mappings are applied by the case mapping functions that take String parameters rather than code points (int). See also the User Guide chapter on C/POSIX migration: https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose lowercase equivalent is to be retrieved <br /> |

| Returns ||
|---|---|
| `int` | the lowercase equivalent code point <br /> |

### toLowerCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toLowerCase (ULocale locale, 
                String str)
```

Returns the lowercase version of the argument string. Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `ULocale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | lowercase version of the argument string <br /> |

### toLowerCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toLowerCase (Locale locale, 
                String str)
```

Returns the lowercase version of the argument string. Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `Locale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | lowercase version of the argument string <br /> |

### toString

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toString (int ch)
```

Converts argument code point and returns a String object representing the code point's value in UTF-16 format. The result is a string whose length is 1 for BMP code points, 2 for supplementary ones.

Up-to-date Unicode implementation of java.lang.Character.toString().

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | string representation of the code point, null if code point is not defined in unicode <br /> |

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toTitleCase (Locale locale, 
                String str, 
                BreakIterator titleIter, 
                int options)
```

**\[icu\]**

Returns the titlecase version of the argument string.

Position for titlecasing is determined by the argument break iterator, hence the user can customize his break iterator for a specialized titlecasing. In this case only the forward iteration needs to be implemented. If the break iterator passed in is null, the default Unicode algorithm will be used to determine the titlecase positions.

Only positions returned by the break iterator will be title cased, character in between the positions will all be in lower case.

Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `Locale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |
| `titleIter` | `BreakIterator`: break iterator to determine the positions in which the character should be title cased. <br /> |
| `options` | `int`: bit set to modify the titlecasing operation <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | titlecase version of the argument string <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_LOWERCASE`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_BREAK_ADJUSTMENT`

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toTitleCase (ULocale locale, 
                String str, 
                BreakIterator titleIter)
```

<br />

Returns the titlecase version of the argument string.

Position for titlecasing is determined by the argument break iterator, hence the user can customize his break iterator for a specialized titlecasing. In this case only the forward iteration needs to be implemented. If the break iterator passed in is null, the default Unicode algorithm will be used to determine the titlecase positions.

Only positions returned by the break iterator will be title cased, character in between the positions will all be in lower case.

Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `ULocale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |
| `titleIter` | `BreakIterator`: break iterator to determine the positions in which the character should be title cased. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | titlecase version of the argument string <br /> |

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toTitleCase (String str, 
                BreakIterator breakiter)
```

<br />

Returns the titlecase version of the argument string.

Position for titlecasing is determined by the argument break iterator, hence the user can customize his break iterator for a specialized titlecasing. In this case only the forward iteration needs to be implemented. If the break iterator passed in is null, the default Unicode algorithm will be used to determine the titlecase positions.

Only positions returned by the break iterator will be title cased, character in between the positions will all be in lower case.

Casing is dependent on the default locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `str` | `String`: source string to be performed on <br /> |
| `breakiter` | `BreakIterator`: break iterator to determine the positions in which the character should be title cased. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | titlecase version of the argument string <br /> |

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toTitleCase (ULocale locale, 
                String str, 
                BreakIterator titleIter, 
                int options)
```

<br />

Returns the titlecase version of the argument string.

Position for titlecasing is determined by the argument break iterator, hence the user can customize his break iterator for a specialized titlecasing. In this case only the forward iteration needs to be implemented. If the break iterator passed in is null, the default Unicode algorithm will be used to determine the titlecase positions.

Only positions returned by the break iterator will be title cased, character in between the positions will all be in lower case.

Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `ULocale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |
| `titleIter` | `BreakIterator`: break iterator to determine the positions in which the character should be title cased. <br /> |
| `options` | `int`: bit set to modify the titlecasing operation <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | titlecase version of the argument string <br /> |

**See also:**

- `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_LOWERCASE`
- `https://developer.android.com/reference/android/icu/lang/UCharacter#TITLECASE_NO_BREAK_ADJUSTMENT`

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toTitleCase (Locale locale, 
                String str, 
                BreakIterator breakiter)
```

<br />

Returns the titlecase version of the argument string.

Position for titlecasing is determined by the argument break iterator, hence the user can customize his break iterator for a specialized titlecasing. In this case only the forward iteration needs to be implemented. If the break iterator passed in is null, the default Unicode algorithm will be used to determine the titlecase positions.

Only positions returned by the break iterator will be title cased, character in between the positions will all be in lower case.

Casing is dependent on the argument locale and context-sensitive

<br />

| Parameters ||
|---|---|
| `locale` | `Locale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |
| `breakiter` | `BreakIterator`: break iterator to determine the positions in which the character should be title cased. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | titlecase version of the argument string <br /> |

### toTitleCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toTitleCase (int ch)
```

Converts the code point argument to titlecase. If no titlecase is available, the uppercase is returned. If no uppercase is available, the code point itself is returned. Up-to-date Unicode implementation of java.lang.Character.toTitleCase()

This function only returns the simple, single-code point case mapping. Full case mappings should be used whenever possible because they produce better results by working on whole strings. They take into account the string context and the language and can map to a result string with a different length as appropriate. Full case mappings are applied by the case mapping functions that take String parameters rather than code points (int). See also the User Guide chapter on C/POSIX migration: https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose title case is to be retrieved <br /> |

| Returns ||
|---|---|
| `int` | titlecase code point <br /> |

### toUpperCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toUpperCase (Locale locale, 
                String str)
```

Returns the uppercase version of the argument string. Casing is dependent on the argument locale and context-sensitive.

<br />

| Parameters ||
|---|---|
| `locale` | `Locale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | uppercase version of the argument string <br /> |

### toUpperCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toUpperCase (ULocale locale, 
                String str)
```

Returns the uppercase version of the argument string. Casing is dependent on the argument locale and context-sensitive.

<br />

| Parameters ||
|---|---|
| `locale` | `ULocale`: which string is to be converted in <br /> |
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | uppercase version of the argument string <br /> |

### toUpperCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static int toUpperCase (int ch)
```

Converts the character argument to uppercase. If no uppercase is available, the character itself is returned. Up-to-date Unicode implementation of java.lang.Character.toUpperCase()

This function only returns the simple, single-code point case mapping. Full case mappings should be used whenever possible because they produce better results by working on whole strings. They take into account the string context and the language and can map to a result string with a different length as appropriate. Full case mappings are applied by the case mapping functions that take String parameters rather than code points (int). See also the User Guide chapter on C/POSIX migration: https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings

<br />

| Parameters ||
|---|---|
| `ch` | `int`: code point whose uppercase is to be retrieved <br /> |

| Returns ||
|---|---|
| `int` | uppercase code point <br /> |

### toUpperCase

Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static String toUpperCase (String str)
```

Returns the uppercase version of the argument string. Casing is dependent on the default locale and context-sensitive.

<br />

| Parameters ||
|---|---|
| `str` | `String`: source string to be performed on <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | uppercase version of the argument string <br /> |