La cadena es una clase invariante. Usar cadena para modificar una cadena creará un nuevo objeto de cadena. Si se modifica con frecuencia, se generarán muchos objetos de cadena, lo cual es muy costoso. Por lo tanto, Java proporciona una clase StringBuffer, que es mucho más eficiente que la cadena para modificar las cadenas.
Hay 3 clases en Java responsables de las operaciones de personajes.
Public Class UsingStringBuffer { / *** Buscar cadena de coincidencia* / public static void testFindStr () {stringBuffer sb = new StringBuffer (); sb.append ("Este es un stringbuffer"); // Devuelve la posición donde la subcadena aparece primero en la cadena. Si no existe, devuelva el número negativo System.out.println ("sb.indexof (/" is/") =" + sb.indexof ("is")); // Establecer parámetros para el método índicef y especificar la posición inicial coincidente System.out.println ("sb.indexof (/" is/") =" + sb.indexof ("is", 3)); // Devuelve la última posición de la subcadena en la cadena. Si no existe, devuelva el número negativo System.out.println ("sb.lastindexof (/" is/") =" + sb.lastindexof ("is")); // Establecer parámetros para el método LastIndexof y especifique la posición final coincidente System.out.println ("sb.lastindexof (/" is/", 1) =" + sb.lastindexof ("is", 1)); } / *** Intercept la cadena* / public static void testSubstr () {StringBuffer sb = new StringBuffer (); sb.append ("Este es un stringbuffer"); // La posición de terminación predeterminada es el final de String System.out.print ("SB.Substring (4) =" + SB.Substring (4)); // El método de subcadena intercepta la cadena, que puede especificar la posición de inicio y la posición de terminación de Intercept System.out.print ("SB.Substring (4,9) =" + SB.Substring (4, 9)); } / ** * Obtenga los caracteres en una determinada posición en la cadena * / public static void testcharatStr () {stringBuffer sb = new StringBuffer ("Esto es un StringBuffer"); System.out.println (sb.charat (sb.length () - 1)); } / *** Agregue varios tipos de datos a la cola de la cadena* / public static void testAppend () {StringBuffer sb = new StringBuffer ("¡Esto es un StringBuffer!"); sb.append (1.23f); System.out.println (sb.ToString ()); } / *** Eliminar datos en String* / public static void testDelete () {StringBuffer sb = new StringBuffer ("¡Esto es un StringBuffer!"); sb.delete (0, 5); sb.deletecharat (sb.length () - 1); System.out.println (sb.ToString ()); } / *** Inserte varios tipos de datos en cadenas* / public static void testInsert () {StringBuffer sb = new StringBuffer ("¡Esto es un StringBuffer!"); // puede insertar caracteres, matrices de caracteres, cadenas y varios números y valores booleanos en posiciones especificadas sb.insert (2, 'w'); sb.insert (3, nuevo char [] {'a', 'b', 'c'}); sb.insert (8, "ABC"); sb.insert (2, 3); sb.insert (3, 2.3f); sb.insert (6, 3.75d); sb.insert (5, 9843l); sb.insert (2, verdadero); System.out.println ("testInsert:" + sb.ToString ()); } / *** Reemplace algunos caracteres en una cadena* / public static void testRplace () {StringBuffer sb = new StringBuffer ("¡Esto es un StringBuffer!"); // reemplazar un cierto carácter en una cadena con otra cadena sb.replace (10, sb.length (), "entero"); System.out.println ("testRplace:" + sb.ToString ()); } / *** Cadena inversa* / public static void reversestr () {StringBuffer sb = new StringBuffer ("¡Esto es un StringBuffer!"); System.out.println (sb.reverse ()); // El método inverso invierte la cadena}} resumen:
StringBuffer no es una clase invariante. Al modificar el contenido de una cadena, no se crean objetos nuevos. Por lo tanto, es más adecuado para modificar cadenas que las clases de cadena;
La clase StringBuffer no proporciona el mismo método ToCarArray que String;
El método Reemplazar de la clase StringBuffer es diferente del método Reemplazar de la clase String. Su método de reemplazo tiene tres parámetros. El primer parámetro especifica la posición de inicio de la subcadena reemplazada, el segundo parámetro especifica la posición final de la subcadena reemplazada y el tercer parámetro especifica la nueva subcandina.
Lo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.