Vou direto ao objetivo… Meu programa precisa ler um arquivo “.txt”, separar as palavras em um array e depois disso listar o array das palavras e a posição onde as palavras aparece… Segue abaixo meu código:
public class Tarefa {
publicstaticvoidmain(String[]args){String[]s=newString[200];Scannerler=newScanner(System.in);System.out.printf("Informe o nome de arquivo texto:\n");// Arquivo que busco no desktop C:\Users\zezinho\Desktop\teste.txtStringnome=ler.nextLine();System.out.printf("\nConteúdo do arquivo texto:\n");try{FileReaderarq=newFileReader(nome);BufferedReaderlerArq=newBufferedReader(arq);Stringlinha=lerArq.readLine();while(linha!=null){s=linha.split("\\s|\\r\\n|\\r|\\n");for(inti=0;i<200;i++){System.out.println(s[i]);}linha=lerArq.readLine();// lê da segunda até a última linha}arq.close();}catch(IOExceptione){System.err.printf("Erro na abertura do arquivo: %s.\n",e.getMessage());}System.out.println();}}
Isto me parece uma questão de aula que você deveria fazer para aprender.
Mas vai ai uma idéia.
Caso queira separar em palavras terá que fazer um split com (" "). É uma solução paleativa.
publicstaticvoidmain(String[]args){Stringcaminho=System.getProperty("user.home");Scannerler=newScanner(caminho+"/teste.txt");Stringnome=ler.nextLine();try{FileReaderarq=newFileReader(nome);BufferedReaderlerArq=newBufferedReader(arq);Stringlinha=lerArq.readLine();StringtextoConteudo="";while(linha!=null){textoConteudo+=linha;linha=lerArq.readLine();}Stringlinhas[]=textoConteudo.split("|");for(inti=0;i<linhas.length;i++){System.out.println("Letra "+linhas[i]+" na posição "+(i+1));}arq.close();}catch(IOExceptione){e.getMessage();}}
B
blayd2015
A resposta já se encontra no enunciado do problema principalmente nesse trecho
separar as palavras em um array
As palavras que estão no arquivo .txt estão separadas como?
A
anon83499127
blayd2015 o conteúdo do arquivo txt é um código pequeno em C++. Só que meu sistema tem que ler esse arquivo e separar cada coisa e dizer a posição e o tipo que é. Por exemplo, ao ler esse arquivo deve imprimir na tela algo como:
Palavra | Tipo | Posição
begin |inicialização| 1
; | Delimitador| 2
if | condiçao | 3
( | parenteses | 4
Esses dados são só um exemplo do que eu quero fazer ao ler o o codigo txt e separá-los em um array e em seguida indicar o que são e a posição onde se encontram…
B
blayd2015
bom então vamos assumir que seu arquivo está com UTF-8 e as palavras estão separadas com espaço
função de leitura
O problema é que tem momentos em que seguindo o exemplo “escreve (valor_3);” eu deveria separar as palavras que não possuem um espaço entre elas para distingui-las…
escreve - palavra reservada - posição 1
( - parenteses - posição 2
valor_3 - valor - posição 3
) - parenteses - posição 4
; - Delimitador - posição 5
Algo mais ou menos assim…
B
blayd2015
então uma dica q eu te dou é colocar variáveis no texto pra vc fazer replace ou split ou substring exemplo