PHP, Java, JavaScript, XML, XHTML, HTML, CSS, ASP, Delphi, Assembly, LaTeX, C, UML, Flash, Perl, SQL, Python, Zope, Pascal, WML. Se conhece mais de 3 siglas referidas, este é o forum para si.
Moderadores: Administradores, Moderadores
por raqh » Sexta Mai 01, 2009 22:19
Olá pessoal!
Estou a precisar muito da vossa ajuda. Aqui em baixo envio-vos o metodo "lerficheiro", trata-se de um ficheiro que contém um texto longo tipo uma história. O que eu quero fazer é armazenar numa tabela de strings unidimensional cada palavra desse texto. Só que não está a funcionar
Alguem me pode ajudar?
Obrigado a todos.
- Código: Seleccionar todos
public static void lerficheiro()
{
try
{
File ficheiro = new File ("hist1.txt");
FileReader leitorDeFicheiro = new FileReader(ficheiro);
BufferedReader buff = new BufferedReader (leitorDeFicheiro);
int n;
String[] x= new String [n];
String linhaLida;
linhaLida=buff.readLine();
while(linhaLida!=null)
{
linhaLida=buff.readLine();
java.util.StringTokenizer coupeur = new java.util.StringTokenizer(linhaLida, " ");
while (coupeur.hasMoreTokens())
{
System.out.println(coupeur.nextToken());
for(int k = 0; k <x.length; k++)
{
x[k]=coupeur.nextToken();
}
}
}
buff.close();
}
catch (Exception er)
{
System.out.println(er);
}
}
-
raqh
- Novato

-
- Mensagens: 15
- Registado: Sábado Abr 04, 2009 17:43
por LMX » Sábado Mai 02, 2009 1:46
Boas..
ja algum tempo que nao toco em java , mas esai ai pelo menos dois erros,
linhaLida=buff.readLine();
while(linhaLida!=null)
{
linhaLida=buff.readLine();
se a primeira linha nao for nula vais ler outra portanto esta ja nunca vai entrar no array que estas a criar, depois,
System.out.println(coupeur.nextToken());
for(int k = 0; k <x.length; k++)
{
x[k]=coupeur.nextToken();
se ouver mais tokens, printas na consolao proximo token, mas o que guardas no array ja nao é este mas sim o seguinte, partindo do principio que existe e se nao existir????
Cumprimentos
De pé mas...Cansado!!!
-
LMX
- Membro de Ouro

-
- Mensagens: 786
- Registado: Quarta Out 20, 2004 21:16
- Localização: Lisboa
por raqh » Sábado Mai 02, 2009 11:27
Olá!
Obrigada pelas dicas. Fiz algumas modificacoes.
O problema agora é que ele não mostra as palavras contidas no arraylist quando executo...

Não sei se o metodo mostrar está correcto.
Aqui vai o meu codigo:
- Código: Seleccionar todos
import java.io.*;
import java.util.*;
public class Ficheiro
{
public static void lerficheiro()
{
ArrayList<String> a= new ArrayList <String>();
try
{
File ficheiro = new File ("hist1.txt");
FileReader leitorDeFicheiro = new FileReader(ficheiro);
BufferedReader buff = new BufferedReader (leitorDeFicheiro);
String linhaLida;
linhaLida=buff.readLine();
while(linhaLida!=null)
{
StringTokenizer st = new StringTokenizer(linhaLida, " ( ) ,.;:-_!?'");
linhaLida=buff.readLine();
while (st.hasMoreTokens())
{
for (int i=0; i<a.size(); i++)
{
a.add(i, new String(st.nextToken()));
}
}
mostrar(a);
}
buff.close();
}
catch (Exception er)
{
System.out.println(er);
}
}
public static void mostrar(ArrayList <String> b)
{
for (int i=0; i<b.size(); i++)
{
System.out.println("Mot: "+b.get(i));
}
}
public static void main(String[] args)
{
lerficheiro();
}
}
Desde já obrigada pela vossa ajuda.
-
raqh
- Novato

-
- Mensagens: 15
- Registado: Sábado Abr 04, 2009 17:43
por vamosAeles » Domingo Mai 03, 2009 19:52
Boas,
sim, o array vai estar vazio devido a:
- Código: Seleccionar todos
while (st.hasMoreTokens())
{
for (int i=0; i<a.size(); i++)
{
a.add(i, new String(st.nextToken()));
}
}
Como o arrayList esta vazio no principio, nunca vai entrar dentro desse ciclo.
Se o q queres é colocar nesse array, a sequencia de palavras, experimenta substituir o codigo acima por:
- Código: Seleccionar todos
while (st.hasMoreTokens())
{
a.add(st.nextToken());
}
[[[]]]
-
vamosAeles
- Membro de Prata

-
- Mensagens: 206
- Registado: Quarta Jan 04, 2006 21:29
- Localização: Lisboa/Proença
Voltar para Programação
Quem está ligado:
Utilizadores a ver este Fórum: Nenhum utilizador registado e 0 visitantes