BreakIterator 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
클래스는 BreakIterator
텍스트에서 경계 위치를 찾는 메서드를 구현합니다.
[Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)]
public abstract class BreakIterator : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)>]
type BreakIterator = class
inherit Object
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 상속
- 특성
- 구현
설명
클래스는 BreakIterator
텍스트에서 경계 위치를 찾는 메서드를 구현합니다. 인스턴스 BreakIterator
는 현재 위치를 유지하고 경계가 발생하는 문자의 인덱스를 반환하는 텍스트를 검색합니다. 내부적으로 는 BreakIterator
를 사용하여 CharacterIterator
텍스트를 검사하므로 해당 프로토콜을 구현하는 개체가 보유한 텍스트를 검색할 수 있습니다. 는 StringCharacterIterator
에 전달된 개체를 검사 String
하는 setText
데 사용됩니다. 에 전달된 후에는 CharacterIterator
개체를 setText
수정해서는 안 됩니다. 개체의 텍스트가 CharacterIterator
변경되면 호출자는 를 호출setText
하여 다시 설정 BreakIterator
해야 합니다.
이 클래스에서 제공하는 팩터리 메서드를 사용하여 다양한 유형의 중단 반복기의 인스턴스를 만듭니다. 특히 , , getLineInstance
및 getCharacterInstance
getSentenceInstance
를 사용하여 getWordInstance
단어, 줄, 문장 및 문자 경계 분석을 각각 수행하는 를 만듭니BreakIterator
다. 단일 BreakIterator
항목은 하나의 단위(단어, 줄, 문장 등)에서만 작동할 수 있습니다. 수행하려는 각 단위 경계 분석에 대해 다른 반복기를 사용해야 합니다.
"선"> 선 경계 분석은 줄 바꿈 시 텍스트 문자열이 끊어질 수 있는 위치를 결정합니다. 메커니즘은 문장 부호 및 하이픈을 넣은 단어를 올바르게 처리합니다. 실제 줄 바꿈은 사용 가능한 선 너비도 고려해야 하며 상위 수준 소프트웨어에서 처리됩니다.
"문장"> 문장 경계 분석을 사용하면 숫자 및 약어 내의 마침표를 올바르게 해석하고 따옴표 및 괄호와 같은 후행 문장 부호를 선택할 수 있습니다.
"word"> Word 경계 분석은 검색 및 바꾸기 함수뿐만 아니라 사용자가 두 번 클릭으로 단어를 선택할 수 있도록 하는 텍스트 편집 애플리케이션 내에서 사용됩니다. Word 선택하면 단어 내 및 다음 단어의 문장 부호를 올바르게 해석할 수 있습니다. 단어의 일부가 아닌 문자(예: 기호 또는 문장 부호)는 양쪽에 단어 구분 기호가 있습니다.
"character"> 문자 경계 분석을 사용하면 사용자가 텍스트 문자열을 통해 커서를 이동할 때 예상대로 문자와 상호 작용할 수 있습니다. 문자 경계 분석은 문자가 저장되는 방식에 관계없이 문자 문자열을 통해 올바른 탐색을 제공합니다. 반환되는 경계는 보조 문자, 문자 시퀀스 결합 또는 합자 클러스터의 경계일 수 있습니다. 예를 들어 악센트가 있는 문자는 기본 문자와 음색 표시로 저장될 수 있습니다. 사용자가 문자로 간주하는 것은 언어마다 다를 수 있습니다.
이 클래스의 팩터리 메서드에서 반환된 인스턴스는 BreakIterator
프로그래밍 언어 텍스트가 아니라 자연어에서만 사용하기 위한 것입니다. 그러나 프로그래밍 언어를 토큰화하는 서브클래스를 정의할 수 있습니다.
<strong>Examples</strong>:
텍스트 경계 만들기 및 사용: <blockquote>
public static void main(String args[]) {
if (args.length == 1) {
String stringToExamine = args[0];
//print each word in order
BreakIterator boundary = BreakIterator.getWordInstance();
boundary.setText(stringToExamine);
printEachForward(boundary, stringToExamine);
//print each sentence in reverse order
boundary = BreakIterator.getSentenceInstance(Locale.US);
boundary.setText(stringToExamine);
printEachBackward(boundary, stringToExamine);
printFirst(boundary, stringToExamine);
printLast(boundary, stringToExamine);
}
}
</인용구>
각 요소를 순서대로 인쇄: <blockquote>
public static void printEachForward(BreakIterator boundary, String source) {
int start = boundary.first();
for (int end = boundary.next();
end != BreakIterator.DONE;
start = end, end = boundary.next()) {
System.out.println(source.substring(start,end));
}
}
</인용구>
각 요소를 역순으로 인쇄: <blockquote>
public static void printEachBackward(BreakIterator boundary, String source) {
int end = boundary.last();
for (int start = boundary.previous();
start != BreakIterator.DONE;
end = start, start = boundary.previous()) {
System.out.println(source.substring(start,end));
}
}
</인용구>
첫 번째 요소 인쇄: <blockquote>
public static void printFirst(BreakIterator boundary, String source) {
int start = boundary.first();
int end = boundary.next();
System.out.println(source.substring(start,end));
}
</인용구>
마지막 요소 인쇄: <blockquote>
public static void printLast(BreakIterator boundary, String source) {
int end = boundary.last();
int start = boundary.previous();
System.out.println(source.substring(start,end));
}
</인용구>
지정된 위치에 요소 인쇄: <blockquote>
public static void printAt(BreakIterator boundary, int pos, String source) {
int end = boundary.following(pos);
int start = boundary.previous();
System.out.println(source.substring(start,end));
}
</인용구>
다음 단어 찾기: <blockquote>
{@code
public static int nextWordStartAfter(int pos, String text) {
BreakIterator wb = BreakIterator.getWordInstance();
wb.setText(text);
int last = wb.following(pos);
int current = wb.next();
while (current != BreakIterator.DONE) {
for (int p = last; p < current; p++) {
if (Character.isLetter(text.codePointAt(p)))
return last;
}
last = current;
current = wb.next();
}
return BreakIterator.DONE;
}
}
BreakIterator.getWordInstance()에서 반환하는 반복기는 반환하는 중단 위치가 반복되는 작업의 시작과 끝을 모두 나타내지 않는다는 측면에서 고유합니다. 즉, 문장 나누기 반복기는 각각 한 문장의 끝과 다음 문장의 시작을 나타내는 나누기를 반환합니다. 단어 분리 반복기를 사용하면 두 경계 사이의 문자가 단어이거나 두 단어 사이의 문장 부호 또는 공백일 수 있습니다. 위의 코드는 간단한 추론을 사용하여 단어의 시작 부분인 경계를 확인합니다. 이 경계와 다음 경계 사이의 문자에 하나 이상의 문자(사전순 문자, CJK 표기법, 한글 음절, 카나 문자 등일 수 있음)가 포함된 경우 이 경계와 다음 경계 사이의 텍스트는 단어입니다. 그렇지 않으면 단어 사이의 재질입니다.) </인용구>
1.1에 추가되었습니다.
에 대한 Java 설명서입니다 java.text.BreakIterator
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
BreakIterator() |
생성자입니다. |
BreakIterator(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
필드
Done |
DONE은 첫 번째 또는 마지막 텍스트 경계에 도달했을 때 previous(), next(), next(int), preceding(int) 및 following(int)에 의해 반환됩니다. |
속성
CharacterInstance |
Locale#getDefault() 기본 로캘에 대한 문자 나누기를 위한 새 |
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
클래스는 |
JniPeerMembers |
클래스는 |
LineInstance |
Locale#getDefault() 기본 로캘의 줄 바꿈에 대한 새 |
PeerReference |
클래스는 |
SentenceInstance |
Locale#getDefault() 기본 로캘에 대한 문장 나누기용 새 |
Text |
|
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
WordInstance |
Locale#getDefault() 기본 로캘에 대한 단어 나누기를 위한 새 |
메서드
Clone() |
이 반복기의 복사본 만들기 |
Current() |
next(), next(int), previous(), first(), last(), following(int) 또는 previousing(int)에서 가장 최근에 반환한 텍스트 경계의 문자 인덱스 를 반환합니다. |
Dispose() |
클래스는 |
Dispose(Boolean) |
클래스는 |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
First() |
첫 번째 경계를 반환합니다. |
Following(Int32) |
지정된 문자 오프셋 다음의 첫 번째 경계를 반환합니다. |
GetAvailableLocales() |
이 클래스의 메서드가 지역화된 인스턴스를 반환할 수 있는 |
GetCharacterInstance(Locale) |
지정된 로캘의 문자 나누기를 위한 새 |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetLineInstance(Locale) |
지정된 로캘의 줄 바꿈에 대한 새 |
GetSentenceInstance(Locale) |
지정된 로캘의 문장 나누기를 위한 새 |
GetWordInstance(Locale) |
지정된 로캘의 단어 나누기를 위한 새 |
IsBoundary(Int32) |
지정된 문자 오프셋이 텍스트 경계인 경우 true를 반환합니다. |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Last() |
마지막 경계를 반환합니다. |
Next() |
현재 경계 다음의 경계를 반환합니다. |
Next(Int32) |
현재 경계에서 n번째 경계를 반환합니다. |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
Preceding(Int32) |
지정된 문자 오프셋 앞에 있는 마지막 경계를 반환합니다. |
Previous() |
현재 경계 앞에 있는 경계를 반환합니다. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetText(String) |
검사할 새 텍스트 문자열을 설정합니다. |
ToArray<T>() |
클래스는 |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
클래스는 |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
클래스는 |
IJavaPeerable.DisposeUnlessReferenced() |
클래스는 |
IJavaPeerable.Finalized() |
클래스는 |
IJavaPeerable.JniManagedPeerState |
클래스는 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
클래스는 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
클래스는 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
클래스는 |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
클래스는 |
GetJniTypeName(IJavaPeerable) |
클래스는 |