O que é String em Java?
Na programação, strings são muito comumente usadas. String em java é um objeto que representa uma sequência de caracteres apoiada por um array char. A classe String é imutável em Java e implementa interfaces Comparable , Serializable e CharSequence . Vejamos um exemplo para entender.String str = "string"
Aqui str é a sequência de 6 caracteres que são s, t, r, i, n e g.
Índice de matriz de caracteres | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
Valor | é | t | R | eu | n | g |
Endereço de memória | 0x12824 | 0x12825 | 0x12826 | 0x12827 | 0x12828 | 0x12829 |
Formas de inicialização de String
Existem duas maneiras de inicializar uma string.- Literais de String
- Novo Operador
Literal de cadeia de caracteres
A maneira mais fácil e direta de declarar uma string é usada no exemplo acima. Sempre que o compilador interpreta uma string literal, ela é sempre convertida no objeto String.String str = "string";
Novo Operador
Também podemos inicializar uma string usando o operador new.String strNew = new String("using new operator");
Exemplo
import java.io.*;
import java.lang.*;
class StringInitializationExample {
public static void main(String[] args)
{
//declare java string with a string literal
String str = "a string literal";
System.out.println("String str = " + str);
//declare string using new operator
String strNew = new String("using new operator");
System.out.println("String strNew = " + strNew);
}
}
Saída
String str = uma string literal String strNew = usando o novo operador
String vs StringBuilder vs StringBuffer
Já discutimos o que é a classe String, então discutiremos as outras duas classes e sua finalidade, junto com o motivo pelo qual Java introduziu essas duas classes quando já possui a classe String para nós. É melhor você ir ao topo e fazer uma revisão da classe String para entendê-la melhor.Razão
Como sabemos que o objeto da classe String é imutável, sempre que precisamos alterar a string, ele nunca altera o objeto atual, mas o valor alterado é sempre armazenado como um novo objeto String. Portanto, se precisarmos alterar o valor repetidamente, a memória também será consumida. Mantendo este ponto, Java nos forneceu as classes StringBuilder e StringBuffer . Agora veremos como eles são úteis neste cenário.StringBuffer
String é uma representação de uma sequência imutável de caracteres, mas StringBuffer é uma sequência mutável de caracteres . Ele usa a maioria dos métodos da classe String junto com alguns próprios para alterar o conteúdo e a sequência de caracteres. É thread-safe porque seus métodos são sincronizados para uso por vários threads, mantendo a ordem serial. Ele implementa as interfaces Serializable , Appendable e CharSequence .Sintaxe
StringBuffer str = new StringBuffer("Happy Java Programming");
StringBuilder
StringBuilder também representa a sequência mutável de caracteres. Ele fornece uma API compatível com a classe StringBuffer, mas não é thread-safe. Portanto, onde vários threads não estão envolvidos, é melhor usar a classe StringBuilder , pois ela é mais rápida que a classe StringBuffer em muitos casos. Os principais métodos desta classe são inserir e anexar. Ele também implementa as interfaces Serializable , Appendable e CharSequence .Sintaxe
StringBuilder str = new StringBuilder("Happy Java Programming");
Operações de cordas
Em Java podemos realizar operações de string como Concatenação , Comparação , Divisão , Localização de Comprimento , Substituição de Strings e assim por diante.Métodos de string
A classe Java String fornece vários métodos para manipular as strings ou executar as operações discutidas acima. Vamos dar uma olhada na tabela abaixo para alguns desses métodos de string.Métodos | Descrição |
---|---|
Char charAt(índice int) | Ele retorna o valor char no índice fornecido. |
String concat(String str) | Ele retorna uma string combinando uma string especificada ao final desta string. |
booleano contém (CharSequence s) | Ele retorna verdadeiro se a string contiver uma sequência especificada de valores char. |
conteúdo booleanoEquals(CharSequence cs) | Ele corresponde à string com a sequência de caracteres fornecida. |
conteúdo booleanoEquals(StringBuffer sb) | Ele corresponde à string com o buffer de string fornecido. |
boolean endsWith (sufixo de string) | Ele compara o final da string com o sufixo fornecido. |
booleano é igual (Objeto e Objeto) | Corresponde a string ao objeto fornecido. |
booleano igual aIgnoreCase(String outraString) | Este método compara duas strings sem levar em consideração a distinção entre maiúsculas e minúsculas. |
formato de string estático (formato de string, objeto… args) | Ele retorna a string formatada usando o formato fornecido e os argumentos. |
byte getBytes() | Este método usa o conjunto de caracteres padrão da plataforma para codificar a string em uma sequência de bytes, que é então armazenada em uma nova matriz de bytes. |
void getChars(int início, int fim, char[] dst, int dstBegin) | Ele copia os caracteres da string para a matriz de caracteres de destino. |
int hashCode() | Ele retorna o código hash da string. |
int indexOf(int ch) | Ele retorna o índice do caractere especificado que ocorre primeiro na string. |
int indexOf(int ch, int fromIndex) | Ele retorna o índice do caractere especificado que ocorre primeiro a partir do índice fornecido nesta string. |
int indexOf(Stringstr) | Ele procura a substring fornecida na string e retorna o índice na primeira ocorrência. |
int indexOf(String str, int fromIndex) | Ele começa a procurar a substring fornecida na string do índice fornecido e retorna o índice na primeira ocorrência. |
Estagiário de string() | Este método retorna a representação canônica da string. |
int lastIndexOf(int ch) | Este método procura o caractere fornecido na string e retorna o índice da última ocorrência. |
int lastIndexOf(int ch, int fromIndex) | Este método pesquisa retroativamente a partir do índice fornecido o caracter fornecido na string e retorna o índice da última ocorrência. |
int lastIndexOf(Stringstr) | Este método procura a substring fornecida na string e retorna o índice da última ocorrência. |
int lastIndexOf(String str, int fromIndex) | Este método pesquisa retroativamente a partir do índice fornecido a substring fornecida na string e retorna o índice da última ocorrência. |
comprimento interno() | Este método retorna o comprimento da string. |
correspondências booleanas (String regex) | Ele retorna verdadeiro ou falso combinando a string com a expressão regular fornecida. |
Substituição de string(char oldValue, char newValue) | Este método retorna uma string após substituir todos os oldValue fornecidos pelo newValue na string. |
String[] divisão(String regex) | Este método encontra todas as correspondências de acordo com a expressão regular fornecida na string e a divide em torno dessas correspondências. |
booleano começa com (prefixo de string) | Ele retorna verdadeiro ou falso testando a string iniciada com o prefixo fornecido. |
Substring de string(int BeginIndex) | Este método retorna uma string que é a substring desta string. |
String toLowerCase() | Ele converte todos os caracteres da string em minúsculas usando as regras do código do idioma padrão. |
Corte de string() | Este método remove todos os espaços em branco iniciais e finais da string e os retorna. |
String estática valorOf(char c) | Ele retorna a representação em string do argumento char. |
Exemplo
import java.io.*;
import java.lang.*;
class JavaStringsExample {
public static void main(String[] args) {
//create a string
String greeting = "Hello! World";
System.out.println("String: " + greeting);
//getting the length of greeting object
int length = greeting.length();
System.out.println("Length: " + length);
//create first string
String first = "Java ";
System.out.println("First String: " + first);
//create second string
String second = "Programming";
System.out.println("Second String: " + second);
//joining two strings
String joinedString = first.concat(second);
System.out.println("Joined String: " + joinedString);
String jpf = "Java programming";
String jps = "Java programming";
String jpt = "Python programming";
//compare jpf and jps strings
boolean result1 = jpf.equals(jps);
System.out.println("Strings jpf and jps are equal: " + result1);
//compare jpf and jpt strings
boolean result2 = jpf.equals(jpt);
System.out.println("Strings jpf and jpt are equal: " + result2);
//converting jpf to uppercase
System.out.println("Upper case jpf: " + jpf.toUpperCase());
//replacing g character with v in jpf
System.out.println("Replacing g with v in jpf: "+jpf.replace("g", "v"));
}
}
Saída
Corda: Olá! Comprimento mundial: 12 Primeira string: Java Segunda string: Programação String unida: Strings de programação Java jpf e jps são iguais: true Strings jpf e jpt são iguais: false Maiúsculas jpf: JAVA PROGRAMMING Substituindo g por v em jpf: java provramminv
GO TO FULL VERSION