Trabalhando com String e JTextField

4 respostas
Frank

Eu tenho um JTextField com uma data nete (99/99/9999) e queria quebrá-lo em três strings, separando dia, mês e ano.
No dia fiz o seguinte:

E funcionou. No mês eu fiz o seguinte:

Só que esta dando erro. Acho que ele não esta pegando valor nenhum. O que eu estou pensando fazer é começar a pegar da primeira barra e quando ele ler a segunda barra ele para. Dai eu tenho o mês.
O que eu estou fazendo de errado ?
O ano eu fiz o seguinte:

Isso esta correto ou será que tem outro jeito de fazer ?

Estou no aguardo e desde já obrigado pessoal,

4 Respostas

thiagorani

Olá Frank,

Passe os numeros no prametro. do subString(x,y).

dia = dataInicial.substring(0,2);
mes = dataInicial.substring(3,5);
ano = dataInicial.substring(6,10);

No seu caso ocorreu erro, por que voce esta passando a mesma posição no início e no fim.

[]´s

Frank

Thiago,
Deste jeito que você me falou eu sabia. O que eu queria fazer era poder ser digitado no dia e/ou no mês apenas um digito ou dois digitos.
Mas acho que farei deste jeito que você me falou mesmo, deixarei um único padrão de data, porque podendo digitar um digito ou dois digitos no mes e no dia ficam dois padrões e fica mais chato de fazer o programa.

Valeu Thiago,

thiagorani

Frank,

Tente usar o JFormattedTextField, passando a mascará da data.
Tambem acho que voce deve usar apenas um padrão. Facilita sua vida.

[]´s

D

Existe ainda uma maneira (pra fazer do jeito que vc queria). Use um StringTokenizer. Por exemplo:

String strData = "27/3/2003";

StringTokenizer stk = new StringTokenizer(strData, "/");
// acima, a string com a barra especifica o teu delimitador...

if (stk.countTokens() != 3) {
    System.out.println("especifique dia, mês e ano");
    System.exit(1);
}

while (stk.hasMoreTokens()) 
      System.out.println("token: " + stk.nextToken());

Espero ter ajudado...

Criado 31 de março de 2003
Ultima resposta 31 de mar. de 2003
Respostas 4
Participantes 3