GoJava - A comunidade java de Goiás

Usuarios cadastrados: 2349

 
Enviado por rodolfo.bueno em qua, 01/06/2010 - 19:44.

Estava fazendo um simulado e me deparei com tal questão:

What will be the result of compiling and running the following code ?

public class StringCheck {
public static void main(String args[]) {
String s = "SCJA ";
s.trim();
s = s + "Exam";
System.out.println(s);
}
}

a. SCJA Exam
b. SCJA Exam
c. SCJAExam
d. Compilation fails

Nem pensei direito e fui logo respondendo a letra 'C' e depois vi que tinha errado e fui informado que a resposta certa é a letra 'A'. Blz.. fiz alguns testes e vi que realmente é a letra 'A' mesmo, mas nesse caso porque o trim não funcionou ???

Eu sei que se eu fizer isso:

String s = "SCJA ";
String a = s.trim();
s = a + "Exam";
System.out.println(s);

a resposta correta se torna a letra 'C'.

Concerteza muitos vão falar que é uma duvida bastante 'idiota', de iniciante, mas ta ai né, não tenho vergonha de dizer que não sei.. :D

Alguém pode me ajudar ? Me dar uma luz.. rsrs

»

Seguinte

quando vc executa s.trim() vc apenas esta requisitando o método trim() da string ou seja retornando a string aplicando o trim, mas não atribuindo a string sacou

Observe que o trim retorna uma String

isso ia funcionar se fosse s = s.trim() ai sim retornaria o que deseja

»

O comentário acima está

O comentário acima está super correto.
Se ele por exemplo imprimisse na tela:

System.out.println(s.trim());

Mostraria a String sem espaços. No caso ele não atribuiu a string com trim() à string original, apenas executou, isto não altera a string. Mas esse é um peguinha interessante, se não pensarmos bem e prestarmos muita atenção acabamos caindo nele.

Entendeu?

Abraços!

Frederico Maia Arantes
http://fredericoarantes.blogspot.com/
http://twitter.com/fredmaia

»

opaa.

Entendi sim galera..

valeu demais a ajuda !!!

Se cair uma pergutinha dessa na minha prova eu já nao erro mais. hehehe

abraços a todos.

»

Comentários recentes

Divulgar

Conteúdo sindicalizado