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.
codice:
String s = "paolo;rossi;1982;";
StringTokenizer st = new StringTokenizer (s, ";");
String s1 = st.nextToken ();
String s2 = st.nextToken ();
String s3 = st.nextToken ();
Se per caso non ci fossero tutti e tre i campi, una delle nextToken() lancerebbe NoSuchElementException.
il codice ora dovrebbe essere corretto :
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();
}
}
ma nn me lo compila,
mi puoi suggerire un compilatore facile da configurare??