Hi,
gegeben ist eine Zeile aus einer csv-Datei, gesplittet sind die Werte durch ein ":" (Doppelpunkt).
Diese Zeile lese ich ein und mache mit String.split(":"); ein Stringarray daraus.
Jetzt, basierend auf dem Inhalt der Zeile, will ich auf verschiedene Indices zugreifen.
Es gibt nur zwei Möglichkeiten, entweder das Array enthält einen gesuchten String, dann hätte ich gerne andere Indices als String. Anderenfalls nehme andere Indices..
Bisher habe ich dies:
Die Idee dahinter ist, dass ich nur oben die int_indices anpassen müsste und somit die Änderungen im Ganzen Code übernommen werden, da ich im Code über getData auf die Inhalte zugreife.
Man sieht, dass ich oben schon die int_arrays initialisiert habe, aber im return trotzdem alle indices manuell hingeschrieben habe.
Kann ich die int-arrays irgendwie in die Initialisierungsblöcke der String-Arrays im return implementieren?
Ist so was realisierbar und wenn ja wie?
gegeben ist eine Zeile aus einer csv-Datei, gesplittet sind die Werte durch ein ":" (Doppelpunkt).
Diese Zeile lese ich ein und mache mit String.split(":"); ein Stringarray daraus.
Jetzt, basierend auf dem Inhalt der Zeile, will ich auf verschiedene Indices zugreifen.
Es gibt nur zwei Möglichkeiten, entweder das Array enthält einen gesuchten String, dann hätte ich gerne andere Indices als String. Anderenfalls nehme andere Indices..
Bisher habe ich dies:
Code:
static String[] matchesExpressionLineout = new String[]{"Dude",
"Amigo"};
int[] ind1= new int[]{0, 1, 5, 10, 12, 14, 15, 16, 17, 18, 19};
int[] ind2= new int[]{0, 1, 5, 11, 13, 14, 15};
public static String[] getData(String line) {
if (line == null || line.isEmpty() || line.length() < 8
|| !line.contains(":")) {
return null;
}
String[] a = line.split(":");
boolean normalLine = true;
for (String s : matchesEx) {
for (String s2 : a) {
if (!s2.isEmpty() && s.contains(s2)) {
normalLine = false;
break;
}
}
if (!normalLine) {
break;
}
}
return (normalLine)
? new String[]{a[0], a[1], a[5], a[10], a[12], a[14], a[15], a[16], a[17], a[18], a[19]}
: new String[]{a[0], a[1], a[5], a[11], a[13], a[14], a[15]};
}
Man sieht, dass ich oben schon die int_arrays initialisiert habe, aber im return trotzdem alle indices manuell hingeschrieben habe.
Kann ich die int-arrays irgendwie in die Initialisierungsblöcke der String-Arrays im return implementieren?
Ist so was realisierbar und wenn ja wie?