JAVA --- Explicación detallada de String y StringBuilder

1. Método de construcción de cuerdas

  •  public String():创建一个空白字符串对象。不含有任何内容
    
  •  public String(char[] chs):根据字符数组的内容,来创建字符串对象
    
  •  public String(byte[] bys):根据字节数组的内容,来创建字符串对象
    
  •  String s="abc":直接赋值的方式创建字符串对象,内容是abc
    

El más utilizado es el último, asignación directa.

Cabe señalar que :
para el primer método de construcción, su contenido es el mismo, pero la dirección es diferente

		char[] chs= {
    
    'a','b','c'};
		String s1=new String(chs);
		String s2=new String(chs);
		//比较地址是否相同
		System.out.println(s1==s2);//返回false
		//比较字符串内容是否相同
		System.out.println(s1.equals(s2));//返回true

Para el método de asignación directa: su contenido y dirección son los mismos

		String s3="abc";
		String s4="abc";
		//比较地址是否相同
		System.out.println(s3==s4);//返回true
		//比较字符串内容是否相同
		System.out.println(s3.equals(s4));返回true

La siguiente imagen puede explicar en detalle la asignación de memoria cuando se crea String.
Inserte la descripción de la imagen aquí


2. Utilice String para empalmar cuerdas

Después de que se crea el String, no se permite modificar su valor, por lo que cada vez que se empalma un objeto String, se volverá a crear un nuevo objeto String. Esta operación consume mucho tiempo y desperdicia espacio en la memoria.

Inserte la descripción de la imagen aquíEntonces puede usar la clase StringBuilder proporcionada por JAVA para resolver este problema


Método de construcción Three. StringBuilder

  •  public StringBuilder()
    
  • Cree un objeto de cadena variable en blanco sin ningún contenido
  •  public StringBuilder(String str)
    
  • Según el contenido de la cadena, para crear un objeto de cadena variable

Cuatro. Métodos de adición y reversión de StringBuilder

public StringBuilder append(任意类型)
//添加数据,并返回本身
public StringBuilder reverse()
//返回相反的字符序列
public class stringbuilderDemo {
    
    
	public static void main(String[] args) {
    
    
		//public StringBuilder():创建一个空白可变的字符串对象,不含有任何内容
		StringBuilder s1=new StringBuilder();
		System.out.println("s1:"+s1);
		//输出s1:
		System.out.println("s1.length:"+s1.length());
		//输出s1.length:0
		
		//public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
		StringBuilder s2=new StringBuilder("helloworld");
		System.out.println("s2:"+s2);
		//输出s2:helloworld
		System.out.println("s2.length:"+s2.length());
		//输出s2.length:10
		
		//public StringBuilder append(任意类型):添加数据,并返回对象本身
		StringBuilder s3=new StringBuilder();
		StringBuilder s4=s3.append("hello");
		
		System.out.println("s3:"+s3);
		//输出s3:hello
		System.out.println("s4:"+s4);
		//输出s4:hello
		System.out.println(s3==s4);
		//输出true
		
		s3.append("world").append("100");
		System.out.println(s3);
		//输出helloworld100
		
		s3.reverse();
		System.out.println(s3);
		//输出001dlrowolleh
		}
	}


Cinco. Conversión entre StringBuilder y String

  • (1) .StringBuilder-> Cadena
  •  public String toString()
    
  • Convierta StringBuilder en String a través del método toString
  • (2) .String-> StringBuilder
  •  public StringBuilder(String s)
    
  • Mediante el método de construcción, String se puede convertir en StringBuilder
public class stringbuilderDemo {
    
    
	public static void main(String[] args) {
    
    
	
	StringBuilder s1=new StringBuilder();
		s1.append("hello");
		
		String s2=s1.toString();
		System.out.println(s2);		//输出hello
		
		String s3="helloworld";
		
		StringBuilder s4=new StringBuilder(s3);
		System.out.println(s4);		//输出helloworld
	}
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45102820/article/details/112982018
Recomendado
Clasificación