Explicación detallada del uso de la clase Java String


1. Descripción general y características de la clase String

1. Información general

  1. La clase String representa cadenas. Todos los literales de cadena (como "abc") en los programas Java se implementan como instancias de esta clase.

2. Características

  1. Las cadenas son constantes y sus valores están en formato 创建之后不能更改.
  2. El búfer de cadenas admite cadenas variables. Debido String 对象是不可变的,所以可以共享a
  3. 字符串效果上相当于char[]数组, Pero 底层原理是byte[]数组.

En segundo lugar, la creación de cadenas y el concepto de piscinas constantes.

1. Formulario de creación de cadenas de uso común

Cree directamente usando comillas dobles:

直接写上双引号,就是创建了String对象

String str = "abc";
System.out.println("直接使用双引号创建的字符串为:"+str);//结果为:abc

Se crean cuatro métodos de construcción:

1.public String():创建一个空白字符串

//初始化一个新创建的 String 对象,使其表示一个空字符序列。
String str = new String();
System.out.println("使用public String()创建的字符串为:"+str);

2 public String(String str).: Utilizar有参方法创建字符串

//初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。
String str = new String("abc");
System.out.println("使用public String(String str)创建的字符串为:"+str);//结果为:abc

3 public String(char[] array).: Según la 字符数组的内容创建cadena correspondiente

//分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
char[] charArray = {
    
    'a','b','c'};
String str = new String(charArray);
System.out.println("使用public String(char[] array)创建的字符串为:"+str);//结果为:abc

4 public String(byte[] array).: Según la 字节数组的内容创建cadena correspondiente

//通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
byte[] byteArray = {
    
    97,98,99};
String str = new String(byteArray);
System.out.println("使用public String(byte[] array)创建的字符串为:"+str);//结果为:abc

En la tabla de códigos ASCII, 65 representa la letra A, 97 representa la letra a
Para obtener más información sobre la tabla de códigos ASCII, haga clic aquí

2. Reserva constante

Grupo de constantes de cadena (en la memoria del montón)

  • La 双引号定义cadena utilizada directamente está 常量池en
  • Utilice el método de construcción newpara abrir otro espacio de memoria en el medio
    . El
    diagrama de memoria es el siguiente
    Inserte la descripción de la imagen aquí

En tercer lugar, los métodos de uso común de la clase String.

Para el tipo de datos básico == es la comparación del valor
Para el tipo de datos de referencia == es la comparación del valor de la dirección.

1. Métodos relacionados de comparación de cadenas

(1) El método equals , que compara el contenido de la cadena

Método información:
public boolean equals (Object obj)
parámetro puede ser cualquier objeto, y sólo 参数是一个字符串并且内容相同lo hará返回true

//定义三个字符串
String str1 = "Hello";
String str2 = new String("Hello");
String str3 = "hello";

//比较定义方式不同,但是内容相同的字符串
System.out.println(str1.equals(str2));//结果为:true

//比较定义方式相同,但是内容不同的字符串
System.out.println(str1.equals(str3));//结果为:false

//使用 "" 定义字符串,直接.equals方法
System.out.println("Hello".equals(str1));//结果为:true

Si usa equals () para comparar una constante con una variable,通常常量在前,变量在后

String str4 = null;
//System.out.println(str4.equals(""));
//不推荐,如果变量为空,会报java.lang.NullPointerException错误
System.out.println("".equals(str4));//结果为:false

(2) método equalsIgnoreCase , 忽略英文大小写comparación de contenido

Información del método:
public boolean equalsIgnoreCase ()

String str5 = "Java";
String str6 = "java";
System.out.println(str5.equals(str6));//结果为:false
System.out.println(str5.equalsIgnoreCase(str6));//结果为:true

2. Métodos relacionados para obtener cadenas

(1) método de longitud ,获取字符串长度

Información del método:
public int length ()

int l = "qwertyuiopasdfghjkl".length();
System.out.println("字符串长度为:"+l);
//结果为:字符串长度为:19

(2) El método concat voluntad参数字符串与原字符串进行拼接

Información del método:
public String concat (String str)

String str1 = "Hello";
String str2 = "World";
System.out.println(str1.concat(str2));
//结果为:HelloWorld

(3) El método charAt , obtén指定索引位置的单个字符

Información del método:
public char charAt (int index)

char ch = "Hello".charAt(1);
System.out.println("1号索引位置的元素为:"+ch);
//结果为:1号索引位置的元素为:e

(4) método indexOf , encuentre 参数字符串在本字符串当中首次出现的索引位置si没有返回-1

Información del método:
public int indexOf (String str)

String str3 = "HelloWorld";
String str4 = "ll";
String str5 = "abc";
System.out.println(str4+"第一次在"+str3+"中出现的索引位置为:"+str3.indexOf(str4));
//结果为:ll第一次在HelloWorld中出现的索引位置为:2
System.out.println(str5+"第一次在"+str3+"中出现的索引位置为:"+str3.indexOf(str5));
//结果为:abc第一次在HelloWorld中出现的索引位置为:-1

3. Métodos relacionados de interceptación de cuerdas

(1) Método de subcadena (un parámetro) , interceptado de参数索引开始一直到字符串的最后
La nrelación entre el primer elemento y el índice esn+1

Información del método:
subcadena de cadena pública (índice int)

String str1 = "HelloWorld";
String str2 = str1.substring(5);
System.out.println(str2);//结果为:World

(2) El método de subcadena (dos parámetros) , intercepta [begin,end)la cadena en la posición del índice

Información del método:
subcadena de cadena pública (int begin, int end)

String str1 = "HelloWorld";
String str3 = str1.substring(2,5);
System.out.println(str3);//结果为:llo

4. Métodos relacionados de conversión de cadenas

(1) método toCharArray , la cadena拆分为字符数组

Información del método:
public char [] toCharArray ()

//将字符串拆分为字符数组
String str1 = "HelloWorld";
char[] chArr = str1.toCharArray();

(2) método getBytes , la cadena actual转换为底层的字符数组

Información del método:
byte público [] getBytes ()

//将字符串拆分为字节数组
String str1 = "HelloWorld";
byte[] byArr = str1.getBytes();

(3) El método de reemplazo , la cadena某一字符全部替换为新字符

Información del método:
reemplazo de cadena pública (CharSequence oldString, CharSequence newString) El
primer parámetro es el carácter antiguo y el segundo parámetro es el carácter nuevo

//将 "l" 替换为 "*"
String str1 = "HelloWorld";
String str2 = str1.replace("l", "*");
System.out.println(str1);//HelloWorld
System.out.println(str2);//He**oWor*d

5. Métodos relacionados de segmentación de cadenas

método de división ,按照参数的规则,分割字符串

Información del método:
public String [] split (String regex) Haga clic aquí para comprender
参数regex realmente 为正则表达式
las expresiones regulares

String str1 = "aaa,bbb,ccc";
String[] stringArray = str1.split(",");//参数为正则表达式
for (int i = 0; i < stringArray.length; i++) {
    
    
      System.out.println(stringArray[i]);
}
//结果为:
//aaa
//bbb
//ccc

Supongo que te gusta

Origin blog.csdn.net/weixin_44580492/article/details/106026843
Recomendado
Clasificación