Saber se um determinado lugar do vetor está vazia

7 respostas
heliojr
public void push(String str){
		String resp = "";
		for(int i=0;i<this.getPalindromo().length;i++){
			resp = str.substring(i,i+1);
			if(this.getPalindromo()[i]!=" "){
				this.getPalindromo()[this.getTopo()] = str.substring(i,i+1);
				this.setTopo(this.getTopo()+1);
			}
		}
	}

Esse é meu método push de uma pilha. O problema que é pra saber se uma string é um palindromo. Sendo que eu queria tratar a string pra se caso ela fosse uma frase e tivesse espaços vazios não os pegar, pois se pegar os espaços não vai ser um palindromo. O palindromo : socorram me subi no onibus em marrocos, não dá certo. Eu fiz isso: if(this.getPalindromo()[i]!=" "){ pra saber se é vazio mas não da certo.

Grato.
Hélio jr.

7 Respostas

von.juliano

Ao invés de comparar a String com !=, use o método equals():

if(this.getPalindromo()[i].equals(" "))
String é um objeto, então deve ser comparado como tal. Ok! :thumbup:

erickcellani

outra dica seria usar o trim()

if(this.getPalindromo().trim()[i].equals("")){

pois assim ele removerá todos os espaços que possui na sua String e vc realmente saberá se está vazio… (afinal " " é diferente de “”) :slight_smile:

erickcellani
cassio

erickcellani:
outra dica seria usar o trim()

if(this.getPalindromo().trim()[i].equals("")){

pois assim ele removerá todos os espaços que possui na sua String e vc realmente saberá se está vazio… (afinal " " é diferente de “”) :)

Não remove todos os espaços, somente os do inicío e fim da String.

Mantu

Só um toque:

O trim não funciona assim. Ele tira apenas os espaços que estão no início e/ou no fim do String.
Por exemplo, isso aqui:

System.out.println("|" + "      a    b   c d    e          f        " + "|");

vai imprimir na tela isso aqui:

|a    b   c d    e          f|

Do jeito que você esplicou, leva a entender que o resultado seria

|abcdef|

O que não é verdade

MrDataFlex

Certo,
porém para isso a utilização do TRIM é essencial, pois se o cara fizer: String.equals(" ") e a string conter: " "; não irá funcionar.

Logo, a dica vale… e muito

Mantu

Nunca disse o contrário… :lol:
Só salientei o equívoco escrito pelo colega erickcellani ao escrever que o trim tira todos os espaços em branco, o que não é verdade.

Criado 26 de abril de 2007
Ultima resposta 8 de mai. de 2007
Respostas 7
Participantes 6