Erros esctotiferos

Ae galera …to precisando de um help básico , estou eu ainda no meu calvário para desenvolver o famoso labirinto usando pilha…eis que me surgem alguns erros escrotiferos…alguém poderia me dar um help por favor!!!

Segue código e erros…

while(saidaEncontrada = false){

   //Testo as possiveis direções

   while(passou = false){
        //Direção 0

        if (lab[linha-1,coluna] = ' '){
p.empilhar(Integer posicao1 = new Integer(Integer.parseInt(linha-1 & coluna)));
lab[linha-1,coluna] = '1';
passou = true;
        }else if(lab[linha-1,coluna] = '#'){
posicaoAtual =p.desempilhar();
sposicaoAtual = Integer.toString(posicaoAtual);
linha = sposicaoAtual.substring(1,1);
coluna = sposicaoAtual.substring(2,1);
        }

			
       if (passou = false){

//Direcao 1
				
if (lab[linha-1,coluna] = ' '){
    p.empilhar(Integer posicao1 = new Integer(Integer.parseInt(linha-1 & coluna)));
    	    lab[linha-1,coluna] = '1';
    passou = true;
            }else if(lab[linha-1,coluna] = '#'){
    posicaoAtual =p.desempilhar();
    sposicaoAtual = Integer.toString(posicaoAtual);
    linha = sposicaoAtual.substring(1,1);
   coluna = sposicaoAtual.substring(2,1);
}					

			
//Direcao 2
if (lab[linha+1,coluna-1] = ' '){
    p.empilhar(Integer posicao1 = new Integer(Integer.parseInt(linha-1 & coluna)));
    lab[linha+1,coluna-1] = '1';
    passou = true;
}else if(lab[linha+1,coluna-1] = '#'){
     posicaoAtual =	p.desempilhar();
     sposicaoAtual = Integer.toString(posicaoAtual);
     linha = sposicaoAtual.substring(1,1);
     coluna = sposicaoAtual.substring(2,1);
}			
								
		
//Direcao 3
if (lab[linha,coluna+1] = ' '){
	    p.empilhar(Integer posicao1 = new Integer(Integer.parseInt(linha-1 & coluna)));
    lab[linha,coluna+1] = '1';
    passou = true;
}else if(lab[linha,coluna+1] = '#'){
     posicaoAtual =	p.desempilhar();
     sposicaoAtual = Integer.toString(posicaoAtual);
     linha = sposicaoAtual.substring(1,1);
     coluna = sposicaoAtual.substring(2,1);
}			
       }			
			

       if(lab[linha,coluna] = 'S'){
saidaEncontrada = true;
break;
       }					
   }

}

Erros :

D:JavaPilhaLabirinto_Entrega>javac Labirinto.java
Labirinto.java:56: ‘]’ expected
if (lab[linha-1,coluna] = ’ '){
^
Labirinto.java:117: ‘)’ expected
}
^
Labirinto.java:118: illegal start of expression
}
^
3 errors

Já quebrei a cabeça e não achei pq…
Aceito sugestões sobre o código tb e uma possível solução…

Valeu , inté mais

Perae… vc tá convertendo Integer pra String, fazendo substring e passando pra Integer de novo… uhh… pra quê!?

Bom, respondendo à sua pergunta, você tem erros de sintaxe. Use uma IDE boa (cough Eclipse cough), e ela te mostra exatamente o que tá errado :wink:

Outra coisa, pelo que eu percebi, em todos os testes lógicos do seu código, vc tá pecando: o operador de teste de igualdade é o == e não o =.

Exemplo:

while(saidaEncontrada = false){}

O corpo desse while nunca vai ser executado, já que saidaEncontrada = false é uma atribuição, e não um teste! :shock:

Aliás, fazer teste de igualdade em variáveis booleanas em expressões condicionais é uma grande redundância. É como se, em português, dissessemos “subir para cima”. Evite isso.

Já corrigi todos esses erros…valeu , minha cabeça ta doendo já…

Agora funcionou…só que preciso tb montar uma funcao que me retorne apenas o que tem depois da virgula numa String , exemplo “10,15” , quero que me retorne apenas o 15 , eu fiz isso com a parte antes da virgula e funcionou na boa…só que depois da virgula , não funciona nem a pau…alguma ideia ?

Uma saida, bem gambi, é ler a String até encontrar a ‘,’ e apartir dela atribuir os proximos caracteres em um atributo auxiliar, e usar o mesmo contendo a outra parte do numero.
Sinceramente não sei se existe algo diferente pra fazer isso!!!
Espero ter ajudado!

Falo.

Clodoaldo, rola vc postar só a parte do código que tá com problema? Fica mais fácil dar algum palpite :smiley:

[quote=“thiagorani”]Uma saida, bem gambi, é ler a String até encontrar a ‘,’ e apartir dela atribuir os proximos caracteres em um atributo auxiliar, e usar o mesmo contendo a outra parte do numero.
Sinceramente não sei se existe algo diferente pra fazer isso!!!
Espero ter ajudado!

Falo.[/quote]

ou usar a java.util.StringTokenizer assim:

   String teste = "10,15";
    StringTokenizer parser = new StringTokenizer(teste, ",");
    while (parser.hasMoreTokens()) {
        fazQualquerCoisa(parser.nextToken());
    }

Bem…eu já tinha feito o que o nosso amigo Thiago falou…pros caracteres antes da virgula funcionou blz…só que pros depois da virgula , ta com algum bug que não to conseguindo enxergar…

if (tipo == 0){

  for(i=0;i<desempilhada.length();i++){
    if(desempilhada.substring(i,i+1).equals(",")){
      break;
    }else{
      linha = linha + desempilhada.substring(i,i+1);
    }  
  
  } 

}else if (tipo ==1){

  for(i=0;i<desempilhada.length();i++){
    
                  
    if(desempilhada.substring(i,i+1).equals(",")){
        encontrouVirgula=true;
    }
  
    if(encontrouVirgula= true){
      linha = linha + desempilhada.substring(i,i+1);
    }  
  
  } 
 
}

ilinha = Integer.parseInt(linha);

return ilinha;

}

Pode cre marciolx.
Vivendo e aprendendo!!! Isso é a implementação do que eu escrevi, algué já teve esse problema um dia!!! :wink:

Falo.

Ta…e o que isso retorna ?

1015 , eu não quero 1015 , eu quero o que tiver depois , depois da virgula…não o número sem a virgula…

Usa oq o marcio disse ou faz algo mais simples, assim:

for (int i = 0; i < String.length(); i++){
		
       if (String.valueOf(String.charAt(i)).equals(","))
	seila = true;		
       
       if(seila){
	aux = String.subString(i+1,String.length());
                break;
       }
}

Fiz um churras em casa ontem, to lesado hj!!! 8)

Clodoaldo, dê uma estudada nos métodos da java.lang.String. Com certeza tem o que vc quer lá :wink:

http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html

O problema é que não sou programador Java , não trabalho com Java , é apenas um trabalho para faculdade valendo nota mensal ainda…eu to cheio de trampo aqui , quinhentas coisas pra resolver , ta maio dificil ficar lendo especificacoes de classes…

Valeu

hmm, voce esta dando um break no for ( quando tipo == 0 ) :wink:
acho que voce queria dar um continue

no ELSE, voce esta testando se tem virgula com uma atribuição e nao uma comparação.

Valeu Thiago…a dica que vc me deu funcionou…obrigado mesmo cara