Hallo,
ich habe schon lange nach einer Lösung für mein Problem gesucht, habe jedoch noch keine gefunden und deswegen wende ich mich jetzt hierher:
Ich möchte ein 2D String Array sortieren. Die Werte sehen wie folgt aus:
String[0][0]= test23;
String[0][1]=Beschreibung;
String [1][0]=test12;
String[1][1]=Beschreibung2;
Die Beschriftung "test" ist fest. Er soll im Prinzip nach der Zahl hinter dem"test" sortieren.
Ich habe schon ein Teil des Programms geschrieben, um bei String[x][0] die Zahl hinter "test auszulesen und mit bubblesort zu sortieren:
[Java]
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test3{
public static void main(String args[]){
String str[][]=new String[][]{};
str[0][0]= "test23";
str[0][1]="Beschreibung";
str[1][0]="test12";
str[1][1]="Beschreibung2";
boolean check = false;
while (!check) {
check = true;
String a[]=new String[]{};
String b[]=new String[]{};
for (int i = 0; i < str.length - 1; i++) {
for (int x = 0;x < 2;x++ ){
a[x]=str[x];
b[x]=str[i+1][x];
}
String p = str[0];
String p2 = str[i+1][0];
Pattern pattern=Pattern.compile("\\d\\d*");
Matcher matcher=pattern.matcher(p);
Matcher matcher2=pattern.matcher(p2);
int t = Integer.parseInt (matcher.group());
int t2 = Integer.parseInt (matcher2.group());
if (t > t2) {
String temp[];
temp=b.clone();
for(int x=0;x<2;x++){
str[i+1][x] = a[x];
str[x] = temp[x];
}
check = false;
}
}
}
for(int i=0;i<str.length;i++){
for(int n=0;n<str.length;n++){
System.out.println(str[n]);
}
}
}
}
[/Java]
Es kommt jedoch folgende Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Test3.main(Test3.java:12)
Gäbe es noch eine einfachere Variante?
Danke und viele Grüße
Robse
ich habe schon lange nach einer Lösung für mein Problem gesucht, habe jedoch noch keine gefunden und deswegen wende ich mich jetzt hierher:
Ich möchte ein 2D String Array sortieren. Die Werte sehen wie folgt aus:
String[0][0]= test23;
String[0][1]=Beschreibung;
String [1][0]=test12;
String[1][1]=Beschreibung2;
Die Beschriftung "test" ist fest. Er soll im Prinzip nach der Zahl hinter dem"test" sortieren.
Ich habe schon ein Teil des Programms geschrieben, um bei String[x][0] die Zahl hinter "test auszulesen und mit bubblesort zu sortieren:
[Java]
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test3{
public static void main(String args[]){
String str[][]=new String[][]{};
str[0][0]= "test23";
str[0][1]="Beschreibung";
str[1][0]="test12";
str[1][1]="Beschreibung2";
boolean check = false;
while (!check) {
check = true;
String a[]=new String[]{};
String b[]=new String[]{};
for (int i = 0; i < str.length - 1; i++) {
for (int x = 0;x < 2;x++ ){
a[x]=str[x];
b[x]=str[i+1][x];
}
String p = str[0];
String p2 = str[i+1][0];
Pattern pattern=Pattern.compile("\\d\\d*");
Matcher matcher=pattern.matcher(p);
Matcher matcher2=pattern.matcher(p2);
int t = Integer.parseInt (matcher.group());
int t2 = Integer.parseInt (matcher2.group());
if (t > t2) {
String temp[];
temp=b.clone();
for(int x=0;x<2;x++){
str[i+1][x] = a[x];
str[x] = temp[x];
}
check = false;
}
}
}
for(int i=0;i<str.length;i++){
for(int n=0;n<str.length;n++){
System.out.println(str[n]);
}
}
}
}
[/Java]
Es kommt jedoch folgende Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Test3.main(Test3.java:12)
Gäbe es noch eine einfachere Variante?
Danke und viele Grüße
Robse
Zuletzt bearbeitet: