Added in [API level 34](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Constants](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#inhconstants) \| [Ctors](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#pubctors) \| [Methods](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#inhmethods)

# GraphemeClusterSegmentFinder

*** ** * ** ***

` public class GraphemeClusterSegmentFinder `   
` ` ` extends https://developer.android.com/reference/android/text/SegmentFinder ` ` `

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [android.text.SegmentFinder](https://developer.android.com/reference/android/text/SegmentFinder) ||
|   | ↳ | android.text.GraphemeClusterSegmentFinder |

<br />

*** ** * ** ***

Implementation of `SegmentFinder` using grapheme clusters as the text segment. Whitespace characters are included as segments.

For example, the text "a pot" would be divided into five text segments: "a", " ", "p", "o", "t".
**See also:**

- [Unicode Text Segmentation - Grapheme Cluster Boundaries](https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries)

## Summary

### Inherited constants

From class `https://developer.android.com/reference/android/text/SegmentFinder` `int` `https://developer.android.com/reference/android/text/SegmentFinder#DONE`

Return value of previousStartBoundary(int), previousEndBoundary(int), nextStartBoundary(int), and nextEndBoundary(int) when there are no boundaries of the specified type in the specified direction.

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#GraphemeClusterSegmentFinder(java.lang.CharSequence,%20android.text.TextPaint)(https://developer.android.com/reference/java/lang/CharSequence text, https://developer.android.com/reference/android/text/TextPaint textPaint) ` Constructs a GraphemeClusterSegmentFinder instance for the specified text which uses the provided TextPaint to determine grapheme cluster boundaries. |

| ### Public methods ||
|---|---|
| ` int` | ` https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#nextEndBoundary(int)(int offset) ` Returns the character offset of the next text segment end boundary after the specified character offset, or `DONE` if there are none. |
| ` int` | ` https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#nextStartBoundary(int)(int offset) ` Returns the character offset of the next text segment start boundary after the specified character offset, or `DONE` if there are none. |
| ` int` | ` https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#previousEndBoundary(int)(int offset) ` Returns the character offset of the previous text segment end boundary before the specified character offset, or `DONE` if there are none. |
| ` int` | ` https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder#previousStartBoundary(int)(int offset) ` Returns the character offset of the previous text segment start boundary before the specified character offset, or `DONE` if there are none. |

### Inherited methods

From class ` https://developer.android.com/reference/android/text/SegmentFinder ` ` abstract int` ` https://developer.android.com/reference/android/text/SegmentFinder#nextEndBoundary(int)(int offset) `

Returns the character offset of the next text segment end boundary after the specified character offset, or `DONE` if there are none.
` abstract int` ` https://developer.android.com/reference/android/text/SegmentFinder#nextStartBoundary(int)(int offset) `

Returns the character offset of the next text segment start boundary after the specified character offset, or `DONE` if there are none.
` abstract int` ` https://developer.android.com/reference/android/text/SegmentFinder#previousEndBoundary(int)(int offset) `

Returns the character offset of the previous text segment end boundary before the specified character offset, or `DONE` if there are none.
` abstract int` ` https://developer.android.com/reference/android/text/SegmentFinder#previousStartBoundary(int)(int offset) `

Returns the character offset of the previous text segment start boundary before the specified character offset, or `DONE` if there are none.
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*.

## Public constructors

### GraphemeClusterSegmentFinder

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

```
public GraphemeClusterSegmentFinder (CharSequence text, 
                TextPaint textPaint)
```

Constructs a GraphemeClusterSegmentFinder instance for the specified text which uses the provided TextPaint to determine grapheme cluster boundaries.

<br />

| Parameters ||
|---|---|
| `text` | `CharSequence`: text to be segmented. This value cannot be `null`. <br /> |
| `textPaint` | `TextPaint`: TextPaint used to draw the text. This value cannot be `null`. <br /> |

## Public methods

### nextEndBoundary

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

```
public int nextEndBoundary (int offset)
```

Returns the character offset of the next text segment end boundary after the specified character offset, or `DONE` if there are none.

<br />

| Parameters ||
|---|---|
| `offset` | `int`: Value is 0 or greater <br /> |

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

### nextStartBoundary

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

```
public int nextStartBoundary (int offset)
```

Returns the character offset of the next text segment start boundary after the specified character offset, or `DONE` if there are none.

<br />

| Parameters ||
|---|---|
| `offset` | `int`: Value is 0 or greater <br /> |

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

### previousEndBoundary

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

```
public int previousEndBoundary (int offset)
```

Returns the character offset of the previous text segment end boundary before the specified character offset, or `DONE` if there are none.

<br />

| Parameters ||
|---|---|
| `offset` | `int`: Value is 0 or greater <br /> |

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

### previousStartBoundary

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

```
public int previousStartBoundary (int offset)
```

Returns the character offset of the previous text segment start boundary before the specified character offset, or `DONE` if there are none.

<br />

| Parameters ||
|---|---|
| `offset` | `int`: Value is 0 or greater <br /> |

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