Ajuda com Classes, qual devo usar para solucionar esse problema?
4 respostas
L
lordabel
o arquivo esta em .txt , terei que ler esse arquivo e criar uma matriz a partir dele . queria saber qual classe devo usar e uma breve explicaçao dela se possivel ainda estou iniciando na programaçao ?
Carregar uma matriz de Boolean por meio de um arquivo de configuração externo formatado de acordo com
exemplo abaixo:
0 1 2 3 4 5
0 | | |X|X|X|X|
1 |X| |X|X|X|X|
2 |X| | |X|X|X|
3 |X|X| |.| |X|
4 |X|X| |X| | |
5 |X|X| |X|X|X|
6 |X|X|X|X|X|X|
Obs.: os caracteres ?X? indicam parede e ? ? espaço livre, enquanto que ?.? informa a posição de partida.
Explica melhor isso ai, você quer gerar uma matriz Boolean com valores a partir deste arquivo ? Ok, então o X representaria true e vazio false?
J
Josue_Eduardo
Cara… por cima… para resolver esse seu problema você teria que ler o arquivo File / BufferedReader… depois processar os caracteres de acordo com sua nescessidade, mas sinceramente não entendi nada do que vc quer fazer… seja mais claro em sua descrição…
Abrass
L
lordabel
Assim eu vo ler o arquivo de texto no qual tem aquela matriz acima , onde tem X == false , espaço vazio == true ,o zero representa o ponto inicial , eu ja criei a parte de leitura do arquivo segue abaixo o codigo.
Preciso agora de uma classe que leia as linhas e me devolva um vetor ou uma matriz acho que a classe split faz isso mas nao sei como utilizala .
importcom.sun.corba.se.impl.resolver.SplitLocalResolverImpl;importjava.io.*;publicclassArquivo{/** * @param args * @throws IOException */publicstaticvoidmain(String[]args)throwsIOException{escreverArquivo();lerArquivo();}privatestaticvoidescreverArquivo()throwsIOException{FileWriterfileWriter=newFileWriter("d:\\teste.txt",false);BufferedWriterbuffer=newBufferedWriter(fileWriter);buffer.write("Conteúdo do arquivo:");buffer.newLine();buffer.write("bla bla bla");buffer.close();}privatestaticvoidlerArquivo()throwsIOException{FileReaderfileReader=newFileReader("B:\\Downloads\\refontesexercciodolabirinto\\configuracaoLabirinto.txt");BufferedReaderbuffer=newBufferedReader(fileReader);Stringlinha=null;IntegernumLinhas=0;do{linha=buffer.readLine();if(linha!=null){System.out.println(linha);numLinhas++;}}while(linha!=null);System.out.println(String.format("\nNúmero de linhas: %d",numLinhas));String[]vet=linha.split("| |");buffer.close();System.out.println(vet);}}
Brainiac.jar
O método split funciona da seguinte forma, você informa qual é o caracter separador, então a cada vez que ele encontra esse caracter, ele separa o texto em 2, 3, 4… 1 milhão de partes, dependendo da quantidade de | que tiver seu texto.
Tente o seguinte, tire um | do argumento, e deixe como abaixo:
String[]vet=linha.split("|");
Desta forma ele vai guardar em cada posição de vet um X, um espaço vazio, ou um ponto . Ignorando o |, pois é o separador