Added in [API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Enums](https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode#enumconstants) \| [Methods](https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode#inhmethods)

# MessagePattern.ApostropheMode

*** ** * ** ***


`
public
static
final

enum
MessagePattern.ApostropheMode
`


`


`

`

extends https://developer.android.com/reference/java/lang/Enum<https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode>


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.lang.Enum](https://developer.android.com/reference/java/lang/Enum)\<[android.icu.text.MessagePattern.ApostropheMode](https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode)\> ||
|   | ↳ | android.icu.text.MessagePattern.ApostropheMode |

<br />

*** ** * ** ***

Mode for when an apostrophe starts quoted literal text for MessageFormat output.
The default is DOUBLE_OPTIONAL unless overridden via ICUConfig
(/com/ibm/icu/ICUConfig.properties).


A pair of adjacent apostrophes always results in a single apostrophe in the output,
even when the pair is between two single, text-quoting apostrophes.


The following table shows examples of desired MessageFormat.format() output
with the pattern strings that yield that output.

| Desired output | DOUBLE_OPTIONAL | DOUBLE_REQUIRED |
|---|---|---|
| I see {many} | I see '{many}' | (same) |
| I said {'Wow!'} | I said '{''Wow!''}' | (same) |
| I don't know | I don't know OR I don''t know | I don''t know |

<br />

## Summary

| ### Enum values ||
|---|---|
| `https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | `DOUBLE_OPTIONAL` A literal apostrophe is represented by either a single or a double apostrophe pattern character. |
| `https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | `DOUBLE_REQUIRED` A literal apostrophe must be represented by a double apostrophe pattern character. |

| ### Public methods ||
|---|---|
| ` static https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | ` https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode#valueOf(java.lang.String)(https://developer.android.com/reference/java/lang/String name) ` |
| ` static final https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | ` https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode#values()() ` |

### Inherited methods

From class `

https://developer.android.com/reference/java/lang/Enum

` `


final

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

Throws CloneNotSupportedException.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#compareTo(E)(E o)
`

Compares this enum with the specified object for order.


`


final

boolean` `
https://developer.android.com/reference/java/lang/Enum#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object other)
`

Returns true if the specified object is equal to this
enum constant.


`


final

void` `
https://developer.android.com/reference/java/lang/Enum#finalize()()
`

enum classes cannot have finalize methods.


`


final

https://developer.android.com/reference/java/lang/Class<E>` `
https://developer.android.com/reference/java/lang/Enum#getDeclaringClass()()
`

Returns the Class object corresponding to this enum constant's
enum type.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#hashCode()()
`

Returns a hash code for this enum constant.


`


final

https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Enum#name()()
`

Returns the name of this enum constant, exactly as declared in its
enum declaration.


`


final

int` `
https://developer.android.com/reference/java/lang/Enum#ordinal()()
`

Returns the ordinal of this enumeration constant (its position
in its enum declaration, where the initial constant is assigned
an ordinal of zero).


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Enum#toString()()
`

Returns the name of this enum constant, as contained in the
declaration.


`


static

<T extends https://developer.android.com/reference/java/lang/Enum<T>>
T` `
https://developer.android.com/reference/java/lang/Enum#valueOf(java.lang.Class<T>,%20java.lang.String)(https://developer.android.com/reference/java/lang/Class<T> enumClass, https://developer.android.com/reference/java/lang/String name)
`

Returns the enum constant of the specified enum class with the
specified name.


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*.


From interface `

https://developer.android.com/reference/java/lang/Comparable

` `
abstract


int` `
https://developer.android.com/reference/java/lang/Comparable#compareTo(T)(E o)
`

Compares this object with the specified object for order.


## Enum values

### DOUBLE_OPTIONAL

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

```
public static final MessagePattern.ApostropheMode DOUBLE_OPTIONAL
```

A literal apostrophe is represented by
either a single or a double apostrophe pattern character.
Within a MessageFormat pattern, a single apostrophe only starts quoted literal text
if it immediately precedes a curly brace {},
or a pipe symbol \| if inside a choice format,
or a pound symbol # if inside a plural format.


This is the default behavior starting with ICU 4.8.

<br />

### DOUBLE_REQUIRED

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

```
public static final MessagePattern.ApostropheMode DOUBLE_REQUIRED
```

A literal apostrophe must be represented by
a double apostrophe pattern character.
A single apostrophe always starts quoted literal text.


This is the behavior of ICU 4.6 and earlier, and of `https://developer.android.com/reference/java/text/MessageFormat`.

<br />

## Public methods

### valueOf

```
public static MessagePattern.ApostropheMode valueOf (String name)
```

<br />

<br />

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

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | <br /> |

### values

```
public static final ApostropheMode[] values ()
```

<br />

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/icu/text/MessagePattern.ApostropheMode` | <br /> |