1. Crie objetos
Para constantes de string diretas em programas Java, a JVM usará um conjunto de strings para salvá-las. Quando uma constante direta de string é usada pela primeira vez, a JVM a coloca no pool de strings para armazenamento em cache. Em circunstâncias normais, os objetos de string no pool de strings não serão coletados como lixo. Quando o programa precisar usar a string novamente, a variável de referência pode apontar diretamente para a string existente na string sem recriar uma nova string. O objeto de string criado usando a nova operação não aponta para o objeto no pool de strings , mas você pode usar o método intern() para apontá-lo para o objeto no pool de strings.
Copie o código do código da seguinte forma:
classe pública StringDemo1 {
public static void main(String[] args){
Stringstr1="abc";
Stringstr2 = "abc";
String str3 =new String("abc");
System.out.println(str1==str2);//true
System.out.println(str1==str3);//falso
}
}
Perguntas frequentes
Copie o código do código da seguinte forma:
String str3 =new String("abc");
Quantos objetos foram criados?
Resposta: Dois
Copie o código do código da seguinte forma:
Stringstr="ab"+"cd";
Quantos objetos foram criados? Resposta: Um. "ab" e "cd" são constantes colocadas no conjunto de strings. Portanto, apenas um conjunto de cadeias de caracteres abcd é criado e a cadeia de caracteres abcd é salva no conjunto de cadeias de caracteres.
Copie o código do código da seguinte forma:
classe pública StringDemo1 {
public static void main(String[] args){
Stringstr1 = "ab";
Stringstr2="cd";
String str3 ="ab"+"cd";//Cria o objeto e adiciona-o ao pool de strings
Stringstr4 =str1+str2;
String str5 =str1+"cd";
System.out.println(str3==str4);//falso
System.out.println(str3==str5);//falso
}
}
Isso pode ser visto no código acima: Somente objetos String criados entre aspas contendo texto podem ser adicionados ao conjunto de strings. Para a expressão de conexão "+" contendo o novo objeto criado pelo novo método, o novo objeto gerado por ele será. não ser adicionado à string no pool.
Mas há uma situação que precisa da nossa atenção:
Copie o código do código da seguinte forma:
classe pública StringDemo1 {
string estática final privada str1 = "ab";
string estática final privada str2 = "cd";
public static void main(String[] args){
String str3 ="ab"+"cd";//Cria o objeto e adiciona-o ao pool de strings
Stringstr4 =str1+str2;
String str5 =str1+"cd";
System.out.println(str3==str4);//true
System.out.println(str3==str5);//true
}
}
Por que isso acontece? A razão é esta, para constantes. Seu valor é fixo e, portanto, pode ser determinado em tempo de compilação.
Altere um pouco o código acima e veja o que acontece.
Copie o código do código da seguinte forma:
classe pública StringDemo1 {
string estática final privada str1;
string estática final privada str2;
estático{
str1="ab";
str2="cd";
}
public static void main(String[] args){
String str3 ="ab"+"cd";//Cria o objeto e adiciona-o ao pool de strings
Stringstr4 =str1+str2;
String str5 =str1+"cd";
System.out.println(str3==str4);//falso
System.out.println(str3==str5);//falso
}
}
Embora str1 e str2 sejam definidos como constantes, eles recebem valores imediatamente antes de o valor de s ser calculado, quando são atribuídos e o valor que lhes são atribuídos são variáveis, portanto, suas propriedades são iguais às variáveis. Só pode ser criado em tempo de execução.
2. Método de string
Obter método
•comprimento interno()
•char charAt(int index) obtém um caractere baseado na posição
•int indexOf(int ch) retorna a posição da primeira ocorrência de ch na string
•int indexOf(int ch,int fromIndex) inicia na posição especificada por fromIndex e obtém a posição da primeira ocorrência de ch na string.
•int indexOf(String str)
•int indexOf(String str,int fromIndex)
•int lastIndexOf(int ch)
Método de julgamento
•boolean contém(String str) Outro método de julgamento: if(str.index(str)!=-1)
•booleano iniciaCom(String str)
•boolean endsWith(String str)
•bolean isEmpty(String str)
•booleano é igual(String str)
•boolean equalsIgnoreCase(String str);
Método de conversão
•Converter array de caracteres em string
Construtor
1.String(char[]chs)
2.String(char[] chs,offset,count) converte parte da matriz de caracteres em uma string.
método estático
1. String estática copyValueOf (char[] chs)
2.String static copyValueOf(char[] chs,int offset,int count)
3.String estático valorOf(char[])
4. String estática valueOf(char[] chs,int offset,int count)
• Converter uma string em uma matriz de caracteres
char[] paraCharArray
•Converter array de caracteres em string
•Converter string em matriz de bytes
byte[] paraBytes
método de substituição
Substituição de string(oldStr,newStr)
Método de corte
Divisão de string (regex)
Obter substring[editar categoria]
String subString(início)
String subString(begin,end) contém a cabeça, mas não a cauda
Converter string em maiúsculas e minúsculas Android(10)
String toUpperCase()
String toLowerCase()
Remova espaços de ambas as extremidades da string
Corte de string()
Compare duas strings em ordem natural
int compararTo(String str)
3. Exercícios de cordas
1. Inversão de cordas
Copie o código do código da seguinte forma:
classe pública StringDemo2 {
public static void main(String[] args){
String str = "avdkfasjks";
métodoreverso_1(str);
}
public static void reverseMethod_1(String str){
for(int i=str.length();i>0;i--){
System.out.print(str.charAt(i-1));
}
}
}
2. Obtenha a maior substring idêntica
Copie o código do código da seguinte forma:
classe pública StringDemo2 {
public static void main(String[] args){
String str1 = "avdkfasjks";
String str2 = "ewavdrtte";
System.out.println(commonMaxSubstring(str1, str2));
}
String estática pública commonMaxSubstring(String str1,String str2){
int len = str1.length();
String str3 = nulo;
exterior:
//i é o comprimento da substring
for(int i = len;i>0;i--){
//j é a substring da substring
for(int j=0;j<len-i+1;j++){
str3=str1.substring(j,j+i);
if(str2. contém(str3))
quebrar externamente;
}
}
retornarstr3;
}
}