il codice ora dovrebbe essere corretto :Originariamente inviato da andbin
Sì, certo anche StringTokenizer. Comunque StringTokenizer usa dei "delimitatori", non dei "separatori". Il concetto è leggermente diverso, cambia il modo della suddivisione.
Se per caso non ci fossero tutti e tre i campi, una delle nextToken() lancerebbe NoSuchElementException.codice:String s = "paolo;rossi;1982;"; StringTokenizer st = new StringTokenizer (s, ";"); String s1 = st.nextToken (); String s2 = st.nextToken (); String s3 = st.nextToken ();
ma nn me lo compila,codice:import java.io.*; import uk.ac.shef.wit.simmetrics.similaritymetrics.AbstractStringMetric; public class Client { private static Test monitor=new Test(); public client() { } public static void main(String[] args)throws IOException { //lettura da file per linee// BufferedReader ina = new BufferedReader(new FileReader("dsa.java")); BufferedReader inb = new BufferedReader(new FileReader("dsb.java")); String s, s2=new String(); String r, r2=new String(); while((s=in.readLine())!=null)s2 += s+"\n"; while((r=in.readLine())!=null)r2 += r+"\n"; //divisione stringhe da dataSet in stringhe nome cognome data// StringTokenizer s2t=new StringTokenizer(s2,";"); StringTokenizer r2t=new StringTokenizer(r2,";"); String s2n=s2t.nextToken(); String s2c=s2t.nextToken(); String s2d=s2t.nextToken(); String r2n=r2t.nextToken(); String r2c=r2t.nextToken(); String r2d=r2t.nextToken(); //invoco jaro per il nome, Levenshtein per il cognome ed Euclidean per la data// float j=Jaro.getSimilarity(s2n,r2n); float l=Levenshtein.getSimilariy(s2c,r2c); float e=EuclideanDistance.getSimilarity(s2d,r2d); //verifico valori di soglia// if(j>0.7)System.out.println("1"); else System.out.println("0"); if(l>0.8)System.out.println("1"); else System.out.println("0"); if(e>0.9)System.out.println("1"); else System.out.println("0"); ina.close(); inb.close(); } }
mi puoi suggerire un compilatore facile da configurare??

Rispondi quotando