Traduzido de: 10 principais perguntas sobre strings Java
Simplificando, "==" testa se as referências de duas strings são iguais e equals() testa se os valores das duas strings são iguais. A menos que você queira verificar se duas strings são o mesmo objeto, é melhor usar equals().
Seria melhor se você conhecesse o mecanismo de persistência de strings.
As strings são imutáveis, o que significa que, uma vez criadas, elas permanecem lá até serem limpas pelo coletor de lixo. Com um array, você pode modificar explicitamente seus elementos. Dessa forma, informações confidenciais de segurança (como senhas) não aparecerão em nenhum outro lugar do sistema.
Para Java7 a resposta é sim. A partir do JDK7, podemos usar String como condição da instrução switch. Antes do JDK6, não podíamos usar String como condição da instrução switch.
// apenas java 7!switch (str.toLowerCase()) { case "a": valor = 1;
int n = Integer.parseInt("10");
Muito simplesmente, é usado com tanta frequência que às vezes é ignorado.
Podemos simplesmente usar expressões regulares para decompô-lo. "/s" representa caracteres de espaço em branco, como " ", "/t", "/r", "/n".
String[] strArray = aString.split("//s+");
No JDK6, o método substring() fornece uma janela para uma matriz de caracteres que representa uma string existente, mas não cria uma nova string. Para criar uma nova string representada por uma nova matriz de caracteres, adicione uma string vazia da seguinte forma:
str.substring(m, n) + ""
Isso cria uma matriz de caracteres completamente nova que representa a nova string. A abordagem acima às vezes torna o código mais rápido porque o coletor de lixo coletará grandes strings não utilizadas e manterá apenas uma substring.
No Oracle JDK 7, substring() cria um novo array de caracteres sem usar o array existente. O diagrama no método substring() no JDK 6 e JDK 7 ilustra as diferenças entre substring() no JDK 6 e JDK 7.
String vs StringBuilder: StringBuilder é mutável, o que significa que é possível alterar seu valor após a criação.
StringBuilder vs StringBuffer: StringBuffer é síncrono, o que significa que é thread-safe, mas mais lento que StringBuilder.
Em Python, podemos repetir uma string multiplicando-a por um número. Em Java, podemos repetir uma string por meio do método repeat() da classe StringUtils no pacote Apache Commons Lang.
String str = "abcd";String repetida = StringUtils.repeat(str,3);//abcdabcdabcd
String str = "17 de setembro de 2013";Data data = new SimpleDateFormat("MMMM d, aa", Locale.ENGLISH).parse(str);System.out.println(data);//Terça, 17 de setembro 00:00 :00 EDT de 2013
Use a classe StringUtils do pacote Apache Commons Lang.
int n = StringUtils.countMatches("11112222", "1");System.out.println(n);
Pergunta adicional: Como detectar que uma string contém apenas letras maiúsculas
Traduzido de: 10 principais perguntas sobre strings Java