problemas básicos con un programa URGENTE
intento hacer un programa con dos métodos. El primero seleciona de un corpus lingüÃstico (listado de palabras) unos tokens, los cuenta y me da en un fichero al cual le doy nombre los tokens seleccionados. El segundo intento que me encuentre un string entrado por la linea de comandos como args2 en el fichero creado en el primer método y que me de el número de veces que ese string de encuentra en el fichero.
Me da dos errores al compilarlo y no sé cómo solucionarlo:
ProcessCorpus5.java:101: unreachable statement
System.out.println("contador: " + contador);
^
ProcessCorpus5.java:63: missing return statement
static int word(String sequence, String fileName){//Mètode per comptar les freqüències de les paraules.
¿PodrÃa ayudarme alguien, por favor?Muchas gracias,
Teresa
A continuación inluyo mi programa:
import java.io.*;
import java.util.*;
import java.lang.*;
class ProcessCorpus5 {
public static void main(String args[]) {
String sequence = args[2];
int nombreparaules = preProcessamiento(args[0], args[1]);
System.out.println("COUNT " + nombreparaules);
int paraula = word(args[2], args[3]);
System.out.println("Aquest Ãtem " + sequence + "apareix" + paraula + "vegades");
}
static int preProcessamiento (String ficheroEntrada,String ficheroSalida){
int count = 0;
try {
FileReader f = new FileReader(ficheroEntrada); // obre l'stream
BufferedReader b = new BufferedReader(f); // obre l'altre stream que permet llegir per blocs
String s = b.readLine(); // primera lectura
FileWriter fw= new FileWriter(ficheroSalida); // obre l'stream de salida
while (s != null){
StringTokenizer st = new StringTokenizer(s,"t"); //Tokenitzem l'string
if(st.countTokens() ==1){ //si només hi ha un token, que passi al següent.
s = b.readLine();}
else{//Si n'hi ha més... delimitem els tres tokens.
String primer = st.nextToken();
String segon = st.nextToken();
String tercer = st.nextToken();
if (tercer.startsWith("F")){//Si el tercer token comença per 'F'...
System.out.println("<" + tercer + ">");
fw.write("<" + tercer + ">"+ "n");
s = b.readLine();}
else{ //Finalment, imprimeix-me el comptador
System.out.println("Line " + count + ": "" + primer + """);
fw.write(primer + "n");
count++;
s = b.readLine();
}
}
}
fw.close();
b.close(); // tanca els streams.
f.close();
}
catch (Exception e) // atrapa les excepcions llançades pels mètodes.
{ System.err.println("Error en manipular el fluxe d'entrada");
e.printStackTrace();
}
return count;
}
static int word(String sequence, String fileName){//Mètode per comptar les freqüències de les paraules.
int contador = 0;
try {
FileReader e = new FileReader(sequence); // Obre frase entrada que volem comparar amb el fitxer
BufferedReader q = new BufferedReader(e);
String u = q.readLine();
FileReader m = new FileReader(fileName); //Obre fitxer entrat abans amb el que hem de comparar la seqüència.
BufferedReader n = new BufferedReader(m); // obri un altre stream que permet llegir per blocs.
String o = n.readLine(); // primera lectura
while (u != null){
StringTokenizer st = new StringTokenizer(u," ");
String primer = st.nextToken();
if(o.equalsIgnoreCase(primer) ==false){//Mentre el primer token no sigui igual al primer token de la seqüència:
o = n.readLine();}
else{
contador++;
o = n.readLine();
u = q.readLine();
}
}
n.close(); // tanca els streams
m.close();
q.close();
e.close();
}
catch (Exception e) // atrapa les excepcions llançades pels mètodes
{ System.err.println("Error en manipular el fluxe d'entrada");
e.printStackTrace();
}
return contador;
System.out.println("contador: " + contador);
}
}
Me da dos errores al compilarlo y no sé cómo solucionarlo:
ProcessCorpus5.java:101: unreachable statement
System.out.println("contador: " + contador);
^
ProcessCorpus5.java:63: missing return statement
static int word(String sequence, String fileName){//Mètode per comptar les freqüències de les paraules.
¿PodrÃa ayudarme alguien, por favor?Muchas gracias,
Teresa
A continuación inluyo mi programa:
import java.io.*;
import java.util.*;
import java.lang.*;
class ProcessCorpus5 {
public static void main(String args[]) {
String sequence = args[2];
int nombreparaules = preProcessamiento(args[0], args[1]);
System.out.println("COUNT " + nombreparaules);
int paraula = word(args[2], args[3]);
System.out.println("Aquest Ãtem " + sequence + "apareix" + paraula + "vegades");
}
static int preProcessamiento (String ficheroEntrada,String ficheroSalida){
int count = 0;
try {
FileReader f = new FileReader(ficheroEntrada); // obre l'stream
BufferedReader b = new BufferedReader(f); // obre l'altre stream que permet llegir per blocs
String s = b.readLine(); // primera lectura
FileWriter fw= new FileWriter(ficheroSalida); // obre l'stream de salida
while (s != null){
StringTokenizer st = new StringTokenizer(s,"t"); //Tokenitzem l'string
if(st.countTokens() ==1){ //si només hi ha un token, que passi al següent.
s = b.readLine();}
else{//Si n'hi ha més... delimitem els tres tokens.
String primer = st.nextToken();
String segon = st.nextToken();
String tercer = st.nextToken();
if (tercer.startsWith("F")){//Si el tercer token comença per 'F'...
System.out.println("<" + tercer + ">");
fw.write("<" + tercer + ">"+ "n");
s = b.readLine();}
else{ //Finalment, imprimeix-me el comptador
System.out.println("Line " + count + ": "" + primer + """);
fw.write(primer + "n");
count++;
s = b.readLine();
}
}
}
fw.close();
b.close(); // tanca els streams.
f.close();
}
catch (Exception e) // atrapa les excepcions llançades pels mètodes.
{ System.err.println("Error en manipular el fluxe d'entrada");
e.printStackTrace();
}
return count;
}
static int word(String sequence, String fileName){//Mètode per comptar les freqüències de les paraules.
int contador = 0;
try {
FileReader e = new FileReader(sequence); // Obre frase entrada que volem comparar amb el fitxer
BufferedReader q = new BufferedReader(e);
String u = q.readLine();
FileReader m = new FileReader(fileName); //Obre fitxer entrat abans amb el que hem de comparar la seqüència.
BufferedReader n = new BufferedReader(m); // obri un altre stream que permet llegir per blocs.
String o = n.readLine(); // primera lectura
while (u != null){
StringTokenizer st = new StringTokenizer(u," ");
String primer = st.nextToken();
if(o.equalsIgnoreCase(primer) ==false){//Mentre el primer token no sigui igual al primer token de la seqüència:
o = n.readLine();}
else{
contador++;
o = n.readLine();
u = q.readLine();
}
}
n.close(); // tanca els streams
m.close();
q.close();
e.close();
}
catch (Exception e) // atrapa les excepcions llançades pels mètodes
{ System.err.println("Error en manipular el fluxe d'entrada");
e.printStackTrace();
}
return contador;
System.out.println("contador: " + contador);
}
}