Existe algum método que lê o tempo em um arquivo com tipos variados?!

3 respostas
C

Bom Dia,

tenho um projeto a ser feito no qual terei que ler um arquivo de 236 linhas com os seguintes dados:

236
362 M 67:05 6:02
331 F 62:26 5:31
322 M 65:33 5:22
330 M 58:37 5:30
...

O mesmo terei que guardar em um array, mas apenas os dados da primeira, terceira e última coluna. O meu problema é como faço para ler o tempo como inteiro por causa dos ":", ou se tem algum método para ler esse tipo de variável. Pois o formatado representado é em min:seg e preciso transformar o tempo fornecido em segundos :/
A principio fiz da seguinte forma...

package Pontuadora;
import java.util.Scanner;
import java.io.*;

public class ProvaDuatlo {

	public static void main(String[] args) throws IOException{
		Scanner ficheiro=new Scanner(new FileReader("tempos.txt"));
		//a variável linha recebe a quantidade de linhas existentes 
		//no ficheiro, o qual é fornecido no mesmo 
		int linha=ficheiro.nextInt();
		int[][] arrayInt=new int[linha][5];
		String[] arrayString=new String[linha];
		int dadosInt;
		String dadosString;
		while(ficheiro.hasNext()){
			for(int i=0; i<linha; i++){
				for(int j=0; j<5; j++){
					arrayInt[i][j]=ficheiro.nextInt();
					dadosInt=arrayInt[i][j];
					arrayString[i]=ficheiro.next();
					dadosString=arrayString[i];
					ficheiro.nextLine();
				//	System.out.println(dadosInt+" "+dadosString);
				}
				
			}
		}
		ficheiro.close();
	}
}

Como poderia proceder?!
Grata desde já

3 Respostas

ViniGodoy

Basta alterar o delimitador do Scanner:

ficheiro.useDelimiter("[ :]+");

Isso fará com que o scanner passe por cima dos : igual passa do espaço em branco.

ViniGodoy
Veja um exemplo:
package br.com.guj;

import java.io.IOException;
import java.util.Scanner;

public class ProvaDuatlo {
	private static final String ARQUIVO = "236\r\n" + 
				"362 M 67:05 6:02\r\n"
			  + "331 F 62:26 5:31\r\n" 
			  + "322 M 65:33 5:22\r\n"
			  + "330 M 58:37 5:30";

	public static void main(String[] args) throws IOException {
		Scanner scan = new Scanner(ARQUIVO);
		scan.useDelimiter("[ :\\r\\n]+");
		while (scan.hasNext())
		{
			System.out.println(scan.next());
		}
	}
}
C

Obrigada pela ajuda :slight_smile:

Criado 17 de dezembro de 2011
Ultima resposta 17 de dez. de 2011
Respostas 3
Participantes 2