Operaciones comunes en cadenas de Java

En Java, la clase de cadena proporciona una gran cantidad de métodos de operación. Para cadenas, nuestras operaciones comunes son: comparación de cadenas, búsqueda, reemplazo, división, interceptación y otras operaciones.

        En Java existen las clases de cadenas String, StringBuffer y StringBuilder, la diferencia entre ellas es que la clase String no se puede modificar, mientras que las clases StringBuffer y StringBuilder sí. Cabe señalar que la modificación aquí no es una modificación literal. En pocas palabras, por ejemplo, para realizar el empalme de dos cadenas, para el primero, supongamos que hay str1 = "hola", y desea empalmar un "mundo" para él, entonces es así, en este proceso , "hola" No ha cambiado, todavía está en la piscina. Pero para los dos últimos, asumiendo str2 = "mundo", para empalmar ''hola'', después del empalme, no hay "mundo" en el grupo. La diferencia entre StringBuffer y StringBuilder es que uno es seguro para subprocesos y el otro no.

        A continuación, describimos algunas operaciones alrededor de las cadenas.

Primero, la comparación de cadenas

1, método igual()

Descripción del documento oficial:

public boolean equals( Object  anObject)

Compara esta cadena con el objeto especificado. El resultado es verdadero si y solo si el argumento no es nulo y es un objeto String que representa la misma secuencia de caracteres que este objeto.

parámetro

anObject: el objeto para comparar esta cadena con

resultado

verdadero si el objeto dado representa una cadena equivalente a esta cadena; de lo contrario, falso

        El método equal() en la clase String se usa para comparar dos cadenas para la igualdad. Esta comparación distingue entre mayúsculas y minúsculas. Cuando hay una constante de cadena, la forma recomendada de escribir es poner la constante de cadena fuera.La razón de esto es que si la variable exterior es nula, se lanzará una excepción de puntero nulo.

String str1 = new String("Hello");
String str2 = new String("Hello");
System.out.println(str1.equals(str2));
// 或者这样写也行
// System.out.println(str2.equals(str1)); 
// 执行结果
//true
String str = new String("Hello");
// 方式一
System.out.println(str.equals("Hello"));
// 方式二
System.out.println("Hello".equals(str));
//——————————————————————————————————————
String str = null;
// 方式一
// 执行结果 抛出 java.lang.NullPointerException 异常
System.out.println(str.equals("Hello")); 
// 方式二
// 执行结果 false
System.out.println("Hello".equals(str));  

        Si no se requiere una comparación que distinga entre mayúsculas y minúsculas, utilice el método equalsIgnoreCase(). Este método generalmente se ve en la verificación del código de verificación.

String str1 = "hello" ; 
String str2 = "Hello" ; 
//结果为false
System.out.println(str1.equals(str2)); 
//结果为true 
System.out.println(str1.equalsIgnoreCase(str2));

2, método compareTo()

Descripción del documento oficial:

public int compareTo( Cadena  otraCadena)

Compara dos cadenas lexicográficamente . La comparación se basa en el valor Unicode de cada carácter de la cadena. La secuencia de caracteres representada por este objeto String se compara lexicográficamente con la secuencia de caracteres representada por el argumento string. Si el objeto String precede lexicográficamente a la cadena del argumento, el resultado es un entero negativo. El resultado es un entero positivo si el objeto String sigue lexicográficamente a la cadena del argumento. Si las cadenas son iguales, el resultado es cero; compareTo devuelve 0 y el método equals(Object) devolverá verdadero.

Sin sus diferentes posiciones de índice, las cadenas más cortas preceden lexicográficamente a las cadenas más largas. En este caso, compareTo devuelve la diferencia en la longitud de la cadena, es decir, el valor: this.length() - anotherString.length()

parámetro

anotherString: la cadena con la que comparar.

resultado

El valor es 0 si la cadena del argumento es igual a esta cadena; un valor menor que 0 si el diccionario de esta cadena es más pequeño que el argumento de la cadena; el valor es mayor que 0 si el tamaño del diccionario de esta cadena excede el tamaño del argumento de cadena

        El método compareTo() de la clase String es un método muy importante. Este método devuelve un número entero. Los datos devolverán tres tipos de contenido según la relación de tamaño: 1. Igual: devuelve 0. 2. Menos que: devuelve contenido menor que 0. 3. Mayor que: el contenido devuelto es mayor que 0. compareTo() es un método que puede distinguir la relación de tamaño, y es un método muy importante en el método String. Sus reglas de comparación de tamaño, resumidas en tres palabras " orden lexicográfico ", equivalen a determinar si dos cadenas están delante o detrás de un diccionario. Primero compare el tamaño del primer carácter (determinado según el valor de Unicode), si no hay ganador, compare los siguientes contenidos a su vez.

System.out.println("A".compareTo("a")); // -32 
System.out.println("a".compareTo("A")); // 32 
System.out.println("A".compareTo("A")); // 0 
System.out.println("AB".compareTo("AC")); // -1 
System.out.println("刘".compareTo("杨")); //比较结果介于unicode码

Segundo, búsqueda de cadenas

1, método contiene()

Descripción del documento oficial:

booleano público contiene ( CharSequence  s)

Devuelve verdadero si y solo si esta cadena contiene la secuencia especificada de valores de caracteres.

parámetro

s - el orden en el que buscar

resultado

verdadero si esta cadena contiene s, falso de lo contrario

        Se utiliza para determinar si existe una subcadena.

String str = "helloworld" ; 
System.out.println(str.contains("world")); // true 

2, método indexOf()

Descripción del documento oficial:

índice int público (int ch)

Devuelve el índice dentro de la cadena de la primera aparición del carácter especificado. El índice (código Unicode) se devuelve si la primera ocurrencia del evento String ocurre en la secuencia de caracteres representada por el carácter ch del valor aquí. Devuelve -1 si no hay tales caracteres en esta cadena.

parámetro

ch - un carácter (punto de código Unicode).

resultado

El índice de la primera aparición del carácter en la secuencia de caracteres representada por este objeto, o -1 si el carácter no aparece.

        Encuentre la posición de la cadena especificada desde el principio y devuelva el índice inicial de la posición (a partir de 0) si se encuentra, y devuelva -1 si no se puede encontrar.

String str = "helloworld" ; 
System.out.println(str.indexOf("world")); // 5,w开始的索引
System.out.println(str.indexOf("bit")); // -1,没有查到

3, comienza con () y termina con () métodos

booleano público comienza con ( prefijo de cadena  )

Comprueba si esta cadena comienza con el prefijo especificado.

parámetro

prefijo - el prefijo.

resultado

Devuelve verdadero si la secuencia de caracteres representada por el argumento es un prefijo de la secuencia de caracteres representada por esta cadena; de lo contrario, es falso. También tenga en cuenta que true si el argumento es una cadena vacía o igual al objeto String se devolverá según lo determine el método equals(Object) .

booleano público termina con ( sufijo de cadena  )

Comprueba si esta cadena termina con el sufijo especificado.

parámetro

sufijo - sufijo.

resultado

true si la secuencia de caracteres representada por el argumento es un sufijo de la secuencia de caracteres representada por este objeto; false en caso contrario. Tenga en cuenta que el resultado será verdadero si el argumento es el objeto String vacío o igual al objeto String según lo determinado por el método equals(Object) .

String str = "**@@helloworld!!" ; 
System.out.println(str.startsWith("**")); // true 
System.out.println(str.startsWith("@@",2)); // ture 
System.out.println(str.endsWith("!!")); // true

Tres, reemplazo de cuerdas

método replaceAll()

cadena pública   replaceAll ( cadena  expresión regular,  reemplazo de cadena )

Reemplaza cada subcadena de esta cadena que coincida con la expresión regular dada con el reemplazo dado .

Tenga en cuenta que las barras diagonales inversas ( \ ) y los signos de dólar ( $ ) en las cadenas de reemplazo pueden generar resultados diferentes que si se trataran como cadenas de reemplazo literales; consulte Matcher.replaceAll . Si es necesario, use Matcher.quoteReplacement(java.lang.String) para suprimir el significado especial de estos caracteres.

parámetro

regex - la expresión regular para que coincida con esta cadena

reemplazo: la cadena para reemplazar cada coincidencia

resultado

la cadena resultante

anormal

PatternSyntaxException : si la sintaxis de la expresión regular no es válida

        El método replaceAll() reemplazará todo el contenido especificado. Para reemplazar la primera letra, use el método replaceFirst(). Tenga en cuenta que dado que las cadenas son objetos inmutables, el reemplazo no modifica la cadena actual, sino que produce una nueva cadena.

String str = "helloworld" ; 
System.out.println(str.replaceAll("l", "_")); //he__owor_d
System.out.println(str.replaceFirst("l", "_")); //he_loworld

Cuarto, división de cuerdas

        La división de cadenas es una operación común. Por ejemplo, cuando se usa BufferedReader para la entrada y salida rápida de datos, en este momento, primero ingrese las cadenas, divídalas y conviértalas en tipos de datos como int.

método dividir ()

Cadena pública  [] dividida (  regex de cadena )

Divide esta cadena en coincidencias de la expresión regular dada .

El método funciona llamando al método de división de dos argumentos con la expresión dada y el argumento de restricción a cero. Por lo tanto, las cadenas vacías finales no se incluyen en la matriz resultante.

parámetro

regex - expresión regular delimitada

resultado

Una matriz de cadenas calculadas al hacer coincidir esta cadena con la expresión regular dada

anormal

PatternSyntaxException : si la sintaxis de la expresión regular no es válida

         Además, es posible que algunos caracteres especiales no se segmenten correctamente como separadores y se deba agregar el símbolo de escape \\. 1. Los caracteres "|", "*", "+" deben ser escapados, precedidos por "\". 2. Si hay varios separadores en una cadena, puede usar "|" como un guión.

String str = "hello world hello People" ; 
String[] result = str.split(" ") ; // 按照空格拆分
for(String s: result) { 
 System.out.println(s); 
} 

String str = "192.168.1.1" ; 
String[] result = str.split("\\.") ; 
for(String s: result) { 
 System.out.println(s); 
}
String str = "name=zhangsan&age=18" ; 
String[] result = str.split("&") ; 
for (int i = 0; i < result.length; i++) { 
 String[] temp = result[i].split("=") ; 
 System.out.println(temp[0]+" = "+temp[1]); 
}

 

Cinco, interceptación de cuerdas

subcadena() método

Descripción del documento oficial:

Subcadena de cadena pública   (int beginIndex)

Devuelve una cadena que es una subcadena de esta cadena. La subcadena comienza con el carácter en el índice especificado y se extiende hasta el final de la cadena.

parámetro

beginIndex - el índice de inicio (inclusive).

resultado

la subcadena especificada.

anormal

IndexOutOfBoundsException     si beginIndex es negativo o mayor que la longitud de este objeto String.

        Este método puede extraer parte del contenido de una cadena completa, desde el índice especificado hasta el final. Cabe señalar que: 1. El índice comienza desde 0. 2. Preste atención a la escritura del intervalo de apertura frontal y apertura posterior, subcadena (0, 5) significa el carácter que contiene el subíndice 0, excluyendo el subíndice 5 .

String str = "helloworld" ; 
System.out.println(str.substring(5)); // world
System.out.println(str.substring(0, 5));//hello

Seis, otros métodos comunes de operación de cuerdas

        Estos métodos de operación comunes son: obtener la longitud de la cadena, eliminar los espacios a ambos lados de la cadena, mantener los espacios en el medio, convertir el caso de la cadena e invertir la cadena.

1, método trim()

Descripción del documento oficial:

Recorte de cadena pública   ()

Devuelve una cadena cuyo valor es esta cadena, con los espacios iniciales y finales eliminados.

Si este objeto String representa una secuencia de caracteres vacía, o si el primer y el último carácter de la secuencia de caracteres representada por este objeto String tienen códigos mayores que '\u0020' (el carácter de espacio), entonces esta Cadena de referencia se devuelve como el objeto.

De lo contrario, si no hay caracteres en la cadena mayores que '\u0020', devuelve un objeto String que representa la cadena vacía.

De lo contrario, sea k '\u0020' para el primer carácter en cadenas con códigos mayores que '\u0020' y m sea '\u0020' para el último carácter en cadenas con códigos mayores que '\u0020'. devolverá un objeto String que representa una subcadena de esta cadena, comenzando con el carácter en el índice k y terminando con el carácter en el índice m , lo que da como resultado this.substring(k, m + 1) .

Este método se puede usar para recortar los espacios en blanco (como se definió anteriormente) desde el principio y el final de una cadena.

resultado

Una cadena cuyo valor es esta cadena, sin espacios iniciales ni finales, o la cadena si la cadena no tiene espacios iniciales ni finales.

        El método trim() elimina los espacios en blanco (espacios, líneas nuevas, tabulaciones, etc.) del principio y el final de la cadena.

String str = " hello world " ; 
System.out.println("["+str+"]"); 
System.out.println("["+str.trim()+"]"); 

2, métodos toUpperCase() y toLowerCase()

Descripción del documento oficial:

public  String  toUpperCase ( Configuración  regional)

parámetro

configuración regional: las reglas de conversión de mayúsculas y minúsculas que se utilizarán con esta configuración regional

resultado

Cadena, convertida a mayúsculas.

Public  String  toLowerCase ( Configuración  regional)

parámetro

configuración regional: las reglas de conversión de mayúsculas y minúsculas que se utilizarán con esta configuración regional

resultado

String , convertido a minúsculas.

String str = " hello%$$%@#$%world 哈哈哈 " ; 
System.out.println(str.toUpperCase()); // HELLO%$$%@#$%WORLD 哈哈哈 
System.out.println(str.toLowerCase()); // hello%$$%@#$%world 哈哈哈 

3, método de longitud ()

Descripción del documento oficial:

longitud int pública ()

Devuelve la longitud de esta cadena. La longitud es igual a las unidades de código Unicode numérico en la cadena .

resultado

La longitud de la secuencia de caracteres representada por este objeto.

         Nota: La longitud de la matriz usa la propiedad name.length de la matriz, mientras que el método length() se usa en String.

String str = " hello%$$%@#$%world 哈哈哈 " ; 
System.out.println(str.length()); //24

3, método inverso()

        La clase String no proporciona el método reverse(), que existe en las clases StringBuffer y StringBuilder. Para usar este método, es necesario usar new out de los objetos generados por ellos. StringBuffer y StringBuilder son muy similares, aquí, StringBuffer se usa para ilustrar.

Descripción del documento oficial:

StringBuilder público   inverso ()

Hace que esa secuencia de caracteres sea reemplazada por el opuesto de la secuencia. Si la secuencia contiene pares sustitutos, se tratan como un solo carácter para la operación inversa.

resultado

una referencia a este objeto

StringBuffer sb = new StringBuffer("helloworld"); 
System.out.println(sb.reverse()); //dlrowolleh

Supongo que te gusta

Origin blog.csdn.net/Naion/article/details/122372796
Recomendado
Clasificación