Comparar strings com apenas 1 caracter [RESOLVIDO]

2 respostas
A

estou a fazer um seguinte programa no sentido de comparar o formato de uma data

quando faço uma comparação para verificar se uma dada posição tem o carácter “-” o programa afirma que não tem mas na realidade tem, tanto o tem que o imprime em linhas mais acima

gostaria de saber o que estou a fazer de errado

pois era suposto o meu programa responder “com traço” mas ele responde “sem traço” sendo isso mentira para a String dada

public static void main(String[] args) {
	// TODO Auto-generated method stub
	String deadline ="1981-12-12 11:11:11";
	
	//posicoes 4 e 7 são um traço "-"
	String sub1 = deadline.substring(4,5); // posicao 4
	String sub2 = deadline.substring(7,8); // posicao 7
	System.out.println("|"+sub1+"|");
	System.out.println("|"+sub2+"|");
	if(sub1 == "-"){
		System.out.println("com traço");
	}
	else{
		System.out.println("sem traço");
	}
	
}

2 Respostas

AndreSorge

O comparador == é para comparar se os objetos são iguais. O comparador equals é para comparar o conteúdo.

if("-".equals(sub1))
{
	System.out.println("com traço");
}
else
{
	System.out.println("sem traço");
}

Dê uma lida no link abaixo:

A

sim é verdade tenho de utilizar a função equals() para comparar Strings não me lembrava mais.
muito obrigado

Criado 21 de novembro de 2016
Ultima resposta 21 de nov. de 2016
Respostas 2
Participantes 2