Ich habe einen String und eine ArrayList<String>.
Nun habe ich den String gesplittet, und ich will prüfen, ob es Elemente innerhalb des gesplitteten Strings gibt, die mit denen in meiner ArrayList<String> gleich sind.
Immer wenn die equals.-Methode true liefert, soll einmal "MATCH" gedruckt werden - das ist aber nicht der Fall, obwohl es mindestens ein Element gibt das beiden Datenstrukturen gemeinsam ist (Ich habe es durch die beiden print-Anweisungen in Z. 33 und Z. 36 geprüft).
Wie kann das sein?
Nun habe ich den String gesplittet, und ich will prüfen, ob es Elemente innerhalb des gesplitteten Strings gibt, die mit denen in meiner ArrayList<String> gleich sind.
Immer wenn die equals.-Methode true liefert, soll einmal "MATCH" gedruckt werden - das ist aber nicht der Fall, obwohl es mindestens ein Element gibt das beiden Datenstrukturen gemeinsam ist (Ich habe es durch die beiden print-Anweisungen in Z. 33 und Z. 36 geprüft).
Wie kann das sein?
Java:
import java.util.ArrayList;
import java.util.regex.*;
public class Y
{
public static void main(String[] args){
ArrayList<String> text = new ArrayList<String>();
text.add("acht");
text.add("sollt");
text.add("ihr");
text.add("geben");
String StandardArff = "@attribute @@class@@ {Kultur-Literatur,Nahrung}\n@attribute ab numeric\n@attribute aber numeric\n@attribute abend numeric\n@attribute abgewickelt numeric\n@attribute acht numeric\n@data";
int AZattribute = StandardArff.substring(StandardArff.lastIndexOf("}")+1).trim().split("@attribute").length;
int[] data = new int[AZattribute];
for(int i=1; i<AZattribute; i++)
{
Matcher m = Pattern.compile("\\s+[a-zA-Z]+\\s+").matcher( StandardArff.substring(StandardArff.lastIndexOf("{")+1 ).trim().split("@attribute")[i]);
if(m.lookingAt())
{ //System.out.println(m.group().substring(1));
for(int k=0;k<text.size();k++){
//System.out.println(text.get(k));
if( m.group().substring(1).equals(text.get(k)))
System.out.println("MATCH"); //Er druckt nichts!
}
}
}
}
}