https://www.journaldev.com/538/string-vs-stringbuffer-vs-stringbuilder
https://stackabuse.com/string-vs-stringbuilder-vs-stringbuffer-in-java/
https://www.javatpoint.com/StringBuffer-class
https://www.javatpoint.com/StringBuilder-class
Ejemplo funciones de cadena:
String s = "JavadesdeCero";
// o String s= new String ("JavadesdeCero");
// Devuelve la cantidad de caracteres en la Cadena.
System.out.println("String length = " + s.length());
// Devuelve el carácter en el índice i.
System.out.println("Character at 3rd position = " + s.charAt(3));
// Devuelve la subcadena del carácter índice i-ésimo
// al final de la cadena
System.out.println("Substring " + s.substring(3));
// Devuelve la subcadena del índice i a j-1.
System.out.println("Substring = " + s.substring(2, 5));
// Concatena string2 hasta el final de string1.
String s1 = "Java";
String s2 = "desdeCero";
String s3="Ja";
s3+="va";
System.out.println(s1==s3);
System.out.println(s1.equals(s3));
System.out.println(s1.compareTo(s3));
System.out.println("String concatenado = " + s1.concat(s2));
// Devuelve el índice dentro de la cadena de
// la primera aparición de la cadena especificada.
String s4 = "Java desde Cero";
System.out.println("Índice de Cero: " + s4.indexOf("Cero"));
// Devuelve el índice dentro de la cadena de
// la primera aparición de la cadena especificada,
// comenzando en el índice especificado.
System.out.println("Índice de a = " + s4.indexOf('a', 4));
// Comprobando la igualdad de cadenas
Boolean out = "Java".equals("java");
System.out.println("Comprobando la igualdad: " + out);
out = "Java".equals("Java");
System.out.println("Comprobando la igualdad: " + out);
out = "Java".equalsIgnoreCase("jaVA");
System.out.println("Comprobando la igualdad: " + out);
int out1 = s1.compareTo(s2);
System.out.println("Si s1 = s2: " + out1);
// Conversión de cases
String palabra1 = "JavadesdeCero";
System.out.println("Cambiando a minúsculas: " + palabra1.toLowerCase());
// Conversión de cases
String palabra2 = "JavadesdeCero";
System.out.println("Cambiando a MAYÚSCULAS: " + palabra1.toUpperCase());
// Recortando la palabra
String word4 = " JavadesdeCero ";
System.out.println("Recortando la palabra: " + word4.trim());
// Reemplazar caracteres
String str1 = "YavadesdeCero";
System.out.println("String Original: " + str1);
String str2 = "YavadesdeCero".replace('Y', 'J');
System.out.println("Reemplazando Y por J -> " + str2);
Ejemplos de StringBuffer:
// Siempre es con constructor
StringBuffer sb=new StringBuffer("Hola ");
// Añadir cadenas a una cadena con append
sb.append("que tal");
// Ni StringBuffer ni StringBuilder tienen el operador +
//sb+=" Mu bien";
System.out.println(sb);
// Inserta 'Java' en la posición 1 : HJavaola que tal
sb.insert(1,"Java");
System.out.println(sb);
// Reemplaza lo que hay entre las posiciones 4 y 6 con '###'
// El resultado es HJav###la que tal
sb.replace(4,6,"###");
System.out.println(sb);
// Borra lo que hay entre las posiciones 1 y 3: Hv###la que tal
sb.delete(1,3);
System.out.println(sb);
// Invertir cadena: lat euq al###vH
sb.reverse();
System.out.println(sb);
String nombre="Eva Pi";
StringBuffer temp=new StringBuffer(nombre);
nombre=temp.reverse().toString();
System.out.println(nombre);
Ejemplos de StringBuilder:
// Creo una cadena con el constructor
StringBuilder sb = new StringBuilder("Hola ");
// Añado con append (nunca con el operador +)
sb.append("que tal");
System.out.println(sb);
// Inserto 'Java' en la posición 1
sb.insert(1, "Java");
System.out.println(sb);
// Reemplazo entre la posición 4 y 6 con '###'
sb.replace(4, 6, "###");
System.out.println(sb);
// Elimino lo que hay entre 1 y 3
sb.delete(1, 3);
System.out.println(sb);
// Invierto la cadena
sb.reverse();
System.out.println(sb);
String nombre = "Eva Pi";
StringBuilder temp = new StringBuilder(nombre);
nombre = temp.reverse().toString();
System.out.println(nombre);