1. Crea objetos
Para constantes de cadena directas en programas Java, la JVM utilizará un grupo de cadenas para guardarlas. Cuando se utiliza una constante directa de cadena por primera vez, la JVM la colocará en el grupo de cadenas para su almacenamiento en caché. En circunstancias normales, los objetos de cadena en el grupo de cadenas no se recolectarán como basura. Cuando el programa necesita usar la cadena nuevamente, la variable de referencia puede apuntar directamente a la cadena existente en la cadena sin volver a crear una nueva cadena. El objeto de cadena creado usando la nueva operación no apunta al objeto en el grupo de cadenas , pero puede usar el método intern() para apuntar al objeto en el grupo de cadenas.
Copie el código de código de la siguiente manera:
clase pública StringDemo1 {
principal vacío estático público (String [] argumentos) {
Cadena str1="abc";
Cadena cadena2 = "abc";
Cadena str3 = nueva cadena ("abc");
System.out.println(str1==str2);//verdadero
System.out.println(str1==str3);//falso
}
}
Preguntas frecuentes
Copie el código de código de la siguiente manera:
Cadena str3 = nueva cadena ("abc");
¿Cuántos objetos se crearon?
Respuesta: dos
Copie el código de código de la siguiente manera:
Cadena cadena="ab"+"cd";
¿Cuántos objetos se crearon? Respuesta: Uno. "ab" y "cd" son constantes colocadas en el grupo de cadenas. Por lo tanto, solo se crea un grupo de cadenas abcd y la cadena abcd se guarda en el grupo de cadenas.
Copie el código de código de la siguiente manera:
clase pública StringDemo1 {
principal vacío estático público (String [] argumentos) {
Cadena str1 = "ab";
Cadena str2="cd";
String str3 ="ab"+"cd";//Crea el objeto y agrégalo al grupo de cadenas
Cadena cadena4 =cadena1+cadena2;
Cadena cadena5 =cadena1+"cd";
System.out.println(str3==str4);//falso
System.out.println(str3==str5);//falso
}
}
Se puede ver en el código anterior: solo los objetos de cadena creados con comillas que contienen texto se pueden agregar al grupo de cadenas. Para la expresión de conexión "+" que contiene el nuevo objeto creado por el nuevo método, el nuevo objeto generado por él será. no se agregará a la cadena en el grupo.
Pero hay una situación que necesita nuestra atención:
Copie el código de código de la siguiente manera:
clase pública StringDemo1 {
Cadena estática final privada str1 = "ab";
Cadena estática final privada str2 = "cd";
principal vacío estático público (String [] argumentos) {
String str3 ="ab"+"cd";//Crea el objeto y agrégalo al grupo de cadenas
Cadena cadena4 =cadena1+cadena2;
Cadena cadena5 =cadena1+"cd";
System.out.println(str3==str4);//verdadero
System.out.println(str3==str5);//verdadero
}
}
¿Por qué es esto? La razón es esta, por las constantes. Su valor es fijo y, por tanto, se puede determinar en tiempo de compilación.
Cambie ligeramente el código anterior y vea qué sucede.
Copie el código de código de la siguiente manera:
clase pública StringDemo1 {
Cadena estática final privada str1;
Cadena estática final privada str2;
estático{
str1="ab";
str2="cd";
}
principal vacío estático público (String [] argumentos) {
String str3 ="ab"+"cd";//Crea el objeto y agrégalo al grupo de cadenas
Cadena cadena4 =cadena1+cadena2;
Cadena cadena5 =cadena1+"cd";
System.out.println(str3==str4);//falso
System.out.println(str3==str5);//falso
}
}
Aunque str1 y str2 se definen como constantes, se les asignan valores inmediatamente antes de calcular el valor de s, cuándo se asignan y qué valor se les asigna son variables, por lo que sus propiedades son las mismas que las de las variables. Solo se puede crear en tiempo de ejecución.
2. Método de cadena
Obtener método
•int longitud()
•char charAt(int index) obtiene un carácter basado en la posición
•int indexOf(int ch) devuelve la posición de la primera aparición de ch en la cadena
•int indexOf(int ch,int fromIndex) comienza desde la posición especificada por fromIndex y obtiene la posición de la primera aparición de ch en la cadena.
•int indexOf(cadena de cadena)
•int indexOf(cadena cadena,int fromIndex)
•int últimoíndiceDe(int ch)
método de juicio
•boolean contiene(String str) Otro método de juicio: if(str.index(str)!=-1)
• booleano comienza con (cadena str)
•extremos booleanos con(cadena cadena)
•bolean está vacío (cadena de cadena)
• booleano es igual (cadena str)
•booleano es igual aIgnoreCase(String str);
Método de conversión
•Convertir matriz de caracteres a cadena
Constructor
1.Cadena(char[] canales)
2.String(char[] chs,offset,count) convierte parte de la matriz de caracteres en una cadena.
método estático
1.Cadena estática copyValueOf(char[] chs)
2.Cadena estática copyValueOf(char[] chs,int offset,int count)
3.valor de cadena estática de (char [])
4.valor de cadena estática (char[] chs,int offset,int count)
• Convertir una cadena en una matriz de caracteres
char[] aCharArray
•Convertir matriz de caracteres a cadena
•Convertir cadena a matriz de bytes
byte[] aBytes
método de reemplazo
Reemplazo de cadena (olderStr,newStr)
Método de corte
División de cadena (expresión regular)
Obtener subcadena[editar categoría]
Subcadena de cadena (comienzo)
String subString(begin,end) contiene la cabeza pero no la cola
Convertir cadenas a mayúsculas y minúsculas Android (10)
Cadena en mayúsculas()
Cadena en minúsculas()
Eliminar espacios de ambos extremos de la cuerda.
Recorte de cuerda()
Compara dos cadenas en orden natural.
int comparar con (cadena cadena)
3.Ejercicios con cuerdas
1. Voltear la cuerda
Copie el código de código de la siguiente manera:
clase pública StringDemo2 {
principal vacío estático público (String [] argumentos) {
Cadena cadena = "avdkfasjks";
método inverso_1(cadena);
}
método inverso vacío estático público_1 (cadena cadena) {
for(int i=str.length();i>0;i--){
System.out.print(str.charAt(i-1));
}
}
}
2. Obtenga la subcadena idéntica más grande
Copie el código de código de la siguiente manera:
clase pública StringDemo2 {
principal vacío estático público (String [] argumentos) {
Cadena str1 = "avdkfasjks";
Cadena str2 = "ewavdrtte";
System.out.println(commonMaxSubstring(str1, str2));
}
cadena estática pública commonMaxSubstring (cadena cadena1, cadena cadena2) {
int len = str1.length();
Cadena str3 = nulo;
exterior:
//i es la longitud de la subcadena
for(int i = len;i>0;i--){
//j es la subcadena de la subcadena
for(int j=0;j<len-i+1;j++){
str3=str1.substring(j,j+i);
si(str2.contiene(str3))
romper exterior;
}
}
devolver cadena3;
}
}