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

# SegmentFinder

*** ** * ** ***

` public abstract class SegmentFinder `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

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

Known direct subclasses [GraphemeClusterSegmentFinder](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder), [SegmentFinder.PrescribedSegmentFinder](https://developer.android.com/reference/android/text/SegmentFinder.PrescribedSegmentFinder), [WordSegmentFinder](https://developer.android.com/reference/android/text/WordSegmentFinder) [GraphemeClusterSegmentFinder](https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder) Implementation of `SegmentFinder` using grapheme clusters as the text segment. [SegmentFinder.PrescribedSegmentFinder](https://developer.android.com/reference/android/text/SegmentFinder.PrescribedSegmentFinder) The default `https://developer.android.com/reference/android/text/SegmentFinder` implementation based on given segment ranges. [WordSegmentFinder](https://developer.android.com/reference/android/text/WordSegmentFinder) Implementation of `https://developer.android.com/reference/android/text/SegmentFinder` using words as the text segment.   

*** ** * ** ***

Finds text segment boundaries within text. Subclasses can implement different types of text segments. Grapheme clusters and words are examples of possible text segments. These are implemented by `https://developer.android.com/reference/android/text/GraphemeClusterSegmentFinder` and `https://developer.android.com/reference/android/text/WordSegmentFinder`.

Text segments may not overlap, so every character belongs to at most one text segment. A character may belong to no text segments.

For example, WordSegmentFinder subdivides the text "Hello, World!" into four text segments: "Hello", ",", "World", "!". The space character does not belong to any text segments.
**See also:**

- `https://developer.android.com/reference/android/text/Layout#getRangeForRect(android.graphics.RectF,%20android.text.SegmentFinder,%20android.text.Layout.TextInclusionStrategy)`

## Summary

| ### Nested classes ||
|---|---|
| ` class` | `https://developer.android.com/reference/android/text/SegmentFinder.PrescribedSegmentFinder` The default `https://developer.android.com/reference/android/text/SegmentFinder` implementation based on given segment ranges. |

| ### Constants ||
|---|---|
| `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/SegmentFinder#SegmentFinder()() ` |

| ### Public methods ||
|---|---|
| ` 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. |

### 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

### DONE

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

```
public static final int 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.

<br />

Constant Value: -1 (0xffffffff)

## Public constructors

### SegmentFinder

```
public SegmentFinder ()
```

<br />

<br />

## Public methods

### nextEndBoundary

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

```
public abstract 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 abstract 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 abstract 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 abstract 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 /> |