As 10 perguntas mais frequentes sobre strings em Java são mencionadas aqui
-
Como comparar strings? O que usar: "
==
" ouequals()
?Resumindo, "
==
" compara referências a strings, masequals()
compara os valores contidos nessas strings. Se você não quiser verificar se duas strings são o mesmo objeto, você deve usarequals()
.Também seria bom conhecer o conceito de pool de strings .
-
Por que
char[]
as strings (String
) são preferidas para proteger informações confidenciais?Strings são imutáveis . Isso significa que uma vez criada uma string, ela não será modificada até que o coletor de lixo seja executado. No caso de um array, é bastante óbvio que podemos alterar seus elementos. Dessa forma, informações confidenciais (como uma senha) não serão armazenadas em texto não criptografado em nenhum lugar do programa.
-
Podemos passar strings como parâmetro ao usar uma instrução switch ?
Sim, a partir da versão 7 do JDK. Anteriormente, na versão 6, isso não era possível.
// java 7 only! switch (str.toLowerCase()) { case "a": value = 1; break; case "b": value = 2; break; }
-
Como converter uma string em um valor inteiro?
int n = Integer.parseInt("10");
O mesmo vale para outros tipos primitivos em Java.
-
Como dividir uma string em linhas delimitadas por espaço?
A maneira mais fácil é usar expressões regulares. "
\s
" atua como um substituto para caracteres de espaço em branco como "\t
", "\r
", "\n
".String[] strArray = aString.split("\\s+");
-
< O que o método realmente faz
substring()
?No JDK 6, o método
substring()
mostrava uma parte dos caracteres de uma string existente, mas não criava uma instância separada da string. Para criar uma nova string, representada como um array de caracteres, você pode adicionar alguma string vazia, por exemplo, assim:str.substring(m, n) + ""
O resultado é um array de caracteres, que é nossa nova string. Às vezes, essa abordagem pode reduzir o tempo de execução do código porque o coletor de lixo pode destruir cadeias grandes não utilizadas e armazenar apenas substrings.
No Oracle JDK 7, o método
substring()
cria uma nova matriz de caracteres sem usar uma existente. Você também pode dar uma olhada no diagrama que representa a diferença entre os métodos substring() no JDK 6 e JDK 7 . -
String vs StringBuilder vs StringBuffer
String
vsStringBuilder
:StringBuilder
mutável, isso significa que podemos alterar seu conteúdo após a criação do objeto.StringBuilder
vsStringBuffer
:StringBuffer
sincronizado, o que significa que funciona corretamente quando usado em vários threads ao mesmo tempo, mas é mais lento queStringBuilder
. -
Como repetir uma linha várias vezes?
Em Python, podemos simplesmente multiplicar uma string por um número
n
e então ela se repetirá n vezes. Em Java, podemos usar um métodorepeat()
daStringUtils
classe da biblioteca Apache Commons Lang.String str = "abcd"; String repeated = StringUtils.repeat(str,3); //abcdabcdabcd
-
Como converter uma string em uma data?
String str = "Sep 17, 2013"; Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str); System.out.println(date); //Tue Sep 17 00:00:00 EDT 2013
-
Como contar o número de ocorrências de um determinado caractere em uma string?
Use uma classe
StringUtils
da biblioteca Apache Commons Lang.int n = StringUtils.countMatches("11112222", "1"); System.out.println(n);
GO TO FULL VERSION