BreakIterator Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
La BreakIterator
clase implementa métodos para buscar la ubicación de los límites en el texto.
[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
- Herencia
- Atributos
- Implementaciones
Comentarios
La BreakIterator
clase implementa métodos para buscar la ubicación de los límites en el texto. Las instancias de BreakIterator
mantener una posición actual y examinar el texto que devuelve el índice de caracteres donde se producen los límites. Internamente, examina el texto mediante yCharacterIterator
, por tanto, BreakIterator
es capaz de examinar el texto mantenido por cualquier objeto que implemente ese protocolo. StringCharacterIterator
Se usa para examinar String
los objetos pasados a setText
. El CharacterIterator
objeto no se debe modificar después de haber pasado a setText
. Si se cambia el texto del CharacterIterator
objeto, el autor de la llamada debe restablecer BreakIterator
llamando a setText
.
Use los métodos de fábrica proporcionados por esta clase para crear instancias de varios tipos de iteradores de interrupción. En concreto, use getWordInstance
, getLineInstance
, getSentenceInstance
y getCharacterInstance
para crear BreakIterator
s que realizan análisis de límites de palabras, líneas, oraciones y caracteres, respectivamente. Un solo BreakIterator
puede funcionar solo en una unidad (palabra, línea, frase, etc.). Debe usar un iterador diferente para cada análisis de límites de unidad que desee realizar.
El análisis de límites de línea "line"> determina dónde se puede romper una cadena de texto cuando se ajusta la línea. El mecanismo controla correctamente la puntuación y las palabras con guiones. El salto de línea real también debe tener en cuenta el ancho de línea disponible y se controla mediante software de nivel superior.
El análisis de límites de frase "oración"> permite la selección con interpretación correcta de puntos dentro de números y abreviaturas, así como signos de puntuación finales, como comillas y paréntesis.
> Las funciones de búsqueda y reemplazo usan Word análisis de límites, así como en las aplicaciones de edición de texto que permiten al usuario seleccionar palabras con un doble clic. Word selección proporciona una interpretación correcta de las marcas de puntuación dentro de y las siguientes palabras. Los caracteres que no forman parte de una palabra, como símbolos o signos de puntuación, tienen saltos de palabra en ambos lados.
El análisis de límites de caracteres "carácter"> permite a los usuarios interactuar con caracteres según lo previsto, por ejemplo, al mover el cursor a través de una cadena de texto. El análisis de límites de caracteres proporciona una navegación correcta a través de cadenas de caracteres, independientemente de cómo se almacene el carácter. Los límites devueltos pueden ser los de caracteres complementarios, combinar secuencias de caracteres o clústeres de ligadura. Por ejemplo, un carácter acentuado se puede almacenar como un carácter base y una marca diacrítica. Lo que los usuarios consideran ser un carácter pueden diferir entre idiomas.
Las BreakIterator
instancias devueltas por los métodos de fábrica de esta clase están diseñadas solo para su uso con lenguajes naturales, no para texto de lenguaje de programación. Sin embargo, es posible definir subclases que tokenicen un lenguaje de programación.
<ejemplos< fuertes>/fuertes>:
Creación y uso de límites de texto: <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>
Imprima cada elemento en orden: <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>
Imprima cada elemento en orden inverso: <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>
Imprimir primer elemento: <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>
Imprimir último elemento: <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>
Imprima el elemento en una posición especificada: <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>
Busque la siguiente palabra: <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;
}
}
(El iterador devuelto por BreakIterator.getWordInstance() es único en que las posiciones de interrupción que devuelve no representan el inicio y el final de la cosa en iteración. Es decir, un iterador de salto de oración devuelve saltos que cada uno representa el final de una oración y el principio de la siguiente. Con el iterador de salto de palabras, los caracteres entre dos límites pueden ser una palabra, o bien pueden ser la puntuación o el espacio en blanco entre dos palabras. El código anterior usa una heurística simple para determinar qué límite es el principio de una palabra: si los caracteres entre este límite y el siguiente límite incluyen al menos una letra (puede ser una letra alfabética, un ideógrafo de CJK, un sillable de Hangul, un carácter Kana, etc.), el texto entre este límite y el siguiente es una palabra; de lo contrario, es el material entre palabras). </Blockquote>
Se agregó en la versión 1.1.
Documentación de Java para java.text.BreakIterator
.
Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código y se usan según los términos descritos en la creative Commons 2.5.
Constructores
BreakIterator() |
Constructor. |
BreakIterator(IntPtr, JniHandleOwnership) |
Constructor utilizado al crear representaciones administradas de objetos JNI; llamado por el entorno de ejecución. |
Campos
Done |
DONE lo devuelve previous(), next(), next(int), previous(int) y following(int) cuando se ha alcanzado el primer o último límite de texto. |
Propiedades
CharacterInstance |
Devuelve una nueva |
Class |
Devuelve la clase en tiempo de ejecución de este |
Handle |
Identificador de la instancia de Android subyacente. (Heredado de Object) |
JniIdentityHashCode |
La |
JniPeerMembers |
La |
LineInstance |
Devuelve una nueva |
PeerReference |
La |
SentenceInstance |
Devuelve una nueva |
Text |
Devuelve un |
ThresholdClass |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
ThresholdType |
Esta API admite la infraestructura mono para Android y no está pensada para usarse directamente desde el código. |
WordInstance |
Devuelve una nueva |
Métodos
Clone() |
Crear una copia de este iterador |
Current() |
Devuelve el índice de caracteres del límite de texto que devolvió más recientemente next(), next(int), previous(), first(), last(), following(int) o previous(int). |
Dispose() |
La |
Dispose(Boolean) |
La |
Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
First() |
Devuelve el primer límite. |
Following(Int32) |
Devuelve el primer límite después del desplazamiento de caracteres especificado. |
GetAvailableLocales() |
Devuelve una matriz de todas las configuraciones regionales para las que los |
GetCharacterInstance(Locale) |
Devuelve una nueva |
GetHashCode() |
Devuelve un valor de código hash del objeto. (Heredado de Object) |
GetLineInstance(Locale) |
Devuelve una nueva |
GetSentenceInstance(Locale) |
Devuelve una nueva |
GetWordInstance(Locale) |
Devuelve una nueva |
IsBoundary(Int32) |
Devuelve true si el desplazamiento de caracteres especificado es un límite de texto. |
JavaFinalize() |
Llamado por el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto. (Heredado de Object) |
Last() |
Devuelve el último límite. |
Next() |
Devuelve el límite que sigue al límite actual. |
Next(Int32) |
Devuelve el límite nésimo del límite actual. |
Notify() |
Activa un único subproceso que está esperando en el monitor de este objeto. (Heredado de Object) |
NotifyAll() |
Activa todos los subprocesos que están esperando en el monitor de este objeto. (Heredado de Object) |
Preceding(Int32) |
Devuelve el último límite que precede al desplazamiento de caracteres especificado. |
Previous() |
Devuelve el límite anterior al límite actual. |
SetHandle(IntPtr, JniHandleOwnership) |
Establece la propiedad Handle. (Heredado de Object) |
SetText(String) |
Establezca una nueva cadena de texto que se va a examinar. |
ToArray<T>() |
La |
ToString() |
Devuelve una representación de cadena del objeto. (Heredado de Object) |
UnregisterFromRuntime() |
La |
Wait() |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em> o <em>interrumpido</em>.<>< (Heredado de Object) |
Wait(Int64) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Wait(Int64, Int32) |
Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <notificado<>/em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real. (Heredado de Object) |
Implementaciones de interfaz explícitas
IJavaPeerable.Disposed() |
La |
IJavaPeerable.DisposeUnlessReferenced() |
La |
IJavaPeerable.Finalized() |
La |
IJavaPeerable.JniManagedPeerState |
La |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
La |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
La |
IJavaPeerable.SetPeerReference(JniObjectReference) |
La |
Métodos de extensión
JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
JavaCast<TResult>(IJavaObject) |
La |
GetJniTypeName(IJavaPeerable) |
La |