Ir ao conteúdo
  • Cadastre-se

Problema com StringTokenizer


megghaz

Posts recomendados

Amigos meu problema é o seguinte...

estou escrevendo uma espécie de protocolo para o funcionamento de uma aplicação cliente/servidor. consegui fazer todos as outras operações funcionarem utilizando o StringTokenizer pra analisar o request do cliente, só que na operação adicionar cliente o StringTokenizer lança uma exceção NoSuchElementException mesmo ainda tendo elementos na string para serem lidos...

abaixo segue o código pra vocês analisarem

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.StringTokenizer;



/**
*
* @author Bezerra's
*/
public class BancoOperacional {
Socket s;
Banco javaBanco;
public BancoOperacional(Socket aSocket, Banco Bank){
s = aSocket;
javaBanco = Bank;
}

public void operando() throws IOException{
BufferedReader entrada = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter saida = new PrintWriter(s.getOutputStream());

while(true){
String comando = entrada.readLine();
System.out.println("Recebido: "+comando);
if(comando == null || comando.equals("SAIR")){
return;}
String resposta = executaComando(comando);

System.out.println("Enviando: "+resposta);
saida.println(resposta);
saida.flush();
}

}

public String executaComando(String recebida){
StringTokenizer tokenmaker = new StringTokenizer(recebida);
String comando = tokenmaker.nextToken();
if(tokenmaker.hasMoreTokens()){
String identidade = tokenmaker.nextToken();

if(comando.equals("SALDO")){
if(javaBanco.buscaConta(identidade)!=null){
ClientedoBanco temp = javaBanco.buscaConta(identidade);
return identidade+" "+temp.getSaldo();
}
else
return "ERRO";

}
else if(comando.equals("DEPOSITO")){
double quantia = Double.parseDouble(tokenmaker.nextToken());
if(javaBanco.buscaConta(identidade)!=null){
ClientedoBanco temp = javaBanco.buscaConta(identidade);
temp.deposito(quantia);
double saldoAtual = temp.getSaldo();
return identidade+" "+saldoAtual;
}
else
return "ERRO";
}
else if(comando.equals("SAQUE")){
double quantia = Double.parseDouble(tokenmaker.nextToken());
if(javaBanco.buscaConta(identidade)!=null){
ClientedoBanco temp = javaBanco.buscaConta(identidade);
temp.saque(quantia);
double saldoAtual = temp.getSaldo();
return identidade+" "+saldoAtual;
}
else
return "ERRO";
}
else if(comando.equals("INFO")){
if(javaBanco.buscaConta(identidade)!=null){
ClientedoBanco temp = javaBanco.buscaConta(identidade);
String info = temp.getInfo();
return identidade+" "+info;
}
else
return "ERRO";
}
[B] else if(comando.equals("ADD")){
String nome = tokenmaker.nextToken();
String id = tokenmaker.nextToken();
String tel = tokenmaker.nextToken();
String end = tokenmaker.nextToken();
String saldo = tokenmaker.nextToken();
String dt = tokenmaker.nextToken();[/B]


double saldoFim = Double.parseDouble(saldo);
String dtFinal=dt.substring(0,2)+"/"+dt.substring(2,4)+"/"+dt.substring(4);
ClientedoBanco temp = new ClientedoBanco(nome,id,tel,end,saldoFim,dtFinal);
javaBanco.adicionaCliente(temp);
return "ADICIONADO "+id;
}
else if(comando.equals("APAGAR")){
String id = tokenmaker.nextToken();
if(javaBanco.buscaConta(id)==null){
return "NOT_FOUND";
}
ClientedoBanco temp = javaBanco.buscaConta(id);
javaBanco.apagaConta(temp);
return "APAGADO";

}
}
else{
if(comando.equals("TOTAL")){
double total = javaBanco.getBalanco();
return "TOTAL "+total;
}
else if(comando.equals("MEDIA")){
int num_de_contas = javaBanco.contador(0.0);
double total = javaBanco.getBalanco();
double media = total/num_de_contas;
if(num_de_contas==0){
return "SEM CONTAS";
}
return "MEDIA "+media;
}

}
return "COMANDO INVALIDO";

}
}

a exceção é lançada quando se tenta armazenar a data na parte em negrito...

por favor gostaria muito que vocês me ajudassem ja não sei mais o que fazer[DESESPERO MODE ON]:wacko::wacko::wacko:

desde já muito obrigado...

:D

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!