Problemas com o if (Urgente)

Possoal,

O que há de errado nesse bloco?

StringTokenizer st = new StringTokenizer(result, "	");   
String momento = st.nextToken();

System.out.println("momento: " + momento); [color="blue"]// devolve momento null[/color]

if (momento == null) {
  System.out.println("momento é null: [color="blue"]");//Por que não executa essa linha ???? ...[/color]
}
else {
  System.out.println("momento não é null"); [color="blue"]//...  e executa essa???[/color]
}

Cara,

Tente usar ao invés do

if(momento == null){}

usar o

if(momento.equalsIgnoreCase(""){}

É isso que você tá querendo? Vê se resolve o seu problema…

Gustavo Guilherme BacK

Se a String result não for null, não tem como momento ser null. E, se result for null, uma NullPointerException será lançada. Eu fiz o seguinte teste:

public static void main(String[] args) {
	String result = "guj";
	StringTokenizer st = new StringTokenizer(result);
	String momento = st.nextToken();

	System.out.println("momento: " + momento); // devolve momento null

	if (momento == null) {
		System.out.println("momento é null: ");//Por que não executa essa linha ???? ...
	}
	else {
		System.out.println("momento não é null"); //... e executa essa???
	}
}

E momento ficou como “guj”. Depois testei colocando result como null, como disse antes, uma NullPointerException foi lançada. Vc pode postar o codigo anterior a esse trecho?

Kra,

if(momento.equalsIgnoreCase(""){}

Não funcionou…

momento nunca vai ser null.

Se o result for null, então, como dito pelo nosso colega será lançada uma NullPointerException.

Se o result for “” então lança uma NoSuchElementException.

Só haverá uma forma de de momento ser null, se vc declará-la como atributo da classe e não a inicializar, por padrão ela é null. E ainda assim qdo vc atribuir nextToken() ela não será mais null.

Sempre que estiver tudo ok com o result, momento será diferente de null.

[quote=“Marques”]Kra,

if(momento.equalsIgnoreCase(""){}

Não funcionou…[/quote]

Que tal tentar a condição do if assim:

// se momento é null ou vazio.
if (momento == null || momento.trim().equals("")) { 
	System.out.println("momento é null ou vazio.");
} 
else { 
	System.out.println("momento não é null.");
}

Se for para o else é porque momento recebeu alguma String “valida”. Vc pode tirar o trim de acordo com a sua vontade tambem.