Clase Java String
1. Descripción general y características de la clase String
1. Información general
- 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
- Las cadenas son constantes y sus valores están en formato
创建之后不能更改
.- El búfer de cadenas admite cadenas variables. Debido
String 对象是不可变的,所以可以共享
a字符串效果上相当于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
new
para堆
abrir otro espacio de memoria en el medio
. El
diagrama de memoria es el siguiente
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 n
relació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