Hallo zusammen,
ich soll eine DNA in Form eines Strings komprimieren. Wenn der String so lautet: aaabbbccccddd soll daraus werden: 3a3b3c3d. Mein Code funktioniert für den String "aaaa", aber sobald Buchstaben vermischt werden funktioniert es nicht. Kann mir jemand sagen, wo mein Fehler ist?
[CODE lang="java" title="comprimise"]public class Komprimieren {
static char x;
static int zähler;
public static String comprimise(String testString) {
String ergebnisString = "";
char [] chars = testString.toCharArray();
for(int i = 0 ; i < chars.length; i++) {
x = chars;
}
for(int j = 0 ; ((j < chars.length) && (x != chars[j + 1])); j++) {
ergebnisString += chars[j];
}
for(int j = 0; ((j < chars.length - 1) && (x == chars[j + 1])); j++) {
zähler ++;
}
if(zähler < 2) {
ergebnisString += x;
}
else if(zähler >= 2) {
ergebnisString = ergebnisString + (zähler + 1) + x;
}
return ergebnisString;
}
}[/CODE]
ich soll eine DNA in Form eines Strings komprimieren. Wenn der String so lautet: aaabbbccccddd soll daraus werden: 3a3b3c3d. Mein Code funktioniert für den String "aaaa", aber sobald Buchstaben vermischt werden funktioniert es nicht. Kann mir jemand sagen, wo mein Fehler ist?
[CODE lang="java" title="comprimise"]public class Komprimieren {
static char x;
static int zähler;
public static String comprimise(String testString) {
String ergebnisString = "";
char [] chars = testString.toCharArray();
for(int i = 0 ; i < chars.length; i++) {
x = chars;
}
for(int j = 0 ; ((j < chars.length) && (x != chars[j + 1])); j++) {
ergebnisString += chars[j];
}
for(int j = 0; ((j < chars.length - 1) && (x == chars[j + 1])); j++) {
zähler ++;
}
if(zähler < 2) {
ergebnisString += x;
}
else if(zähler >= 2) {
ergebnisString = ergebnisString + (zähler + 1) + x;
}
return ergebnisString;
}
}[/CODE]