Devo leggere un file di input di questo tipo:
codice:
(1,3)
(4,5)
(2,5)
(5,1)
(3,2)
(2,1)
(1,1)
(5,5)
(6,5)
Cioč dalla stringa io converto in intero i due numeri che compaiono per ogni riga scartando le parentesi e la virgola, ma mi vengono dati errori, come se si volesse convertire anche lo spazio, cioč " " che tra l'altro visto che non c'č non capisco dove lo trova...
Non capisco che cosa non vada...questo č il codice:
codice:
import java.io.*;
import java.util.*;
public class Main
{
FileReader reader=null;
StringTokenizer str;
PrintWriter out=null;
BufferedReader buff=null;
public void Costruiscialbero(String input, String output)
{
try{
reader=new FileReader(input);
buff=new BufferedReader(reader);
out=new PrintWriter(output);
BSTree<TNode> albero=new BSTree<TNode>();
while(buff.ready())
{
str=new StringTokenizer(buff.readLine(),"(,)");
int primo=0;
int secondo=0;
while(str.hasMoreElements())
{
primo=(Integer.parseInt(str.nextToken()));
secondo=(Integer.parseInt(str.nextToken()));
}
Coppia coppia=new Coppia(primo, secondo);
TNode<Coppia> nodo=new TNode<Coppia>(coppia);
albero.insert(nodo);
}
}
catch(FileNotFoundException e1)
{
System.out.println("Error...file not found");
}
catch(IOException e2)
{
System.out.println("Error...input/output");
}
finally{
try{
buff.close();
reader.close();
out.close();
}
catch(IOException e3){
System.out.println("Error...it is not possible to close files");
}
}
}
public static void main(String [] args)
{
Main main=new Main();
long start=System.currentTimeMillis();
main.Costruiscialbero("input.txt", "output.txt");
long end=System.currentTimeMillis();
System.out.println("Il tempo d'esecuzione č "+(end-start)+" ns");
}
}
E questi gli errori:
codice:
Exception in thread "main" java.lang.NumberFormatException: For input string: " "
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Main.Costruiscialbero(Main.java:29)
at Main.main(Main.java:69)