В настоящее время я пишу код Java для класса и пытаюсь выяснить, как реализовать кодировку длины прогона для пользовательского ввода. Основная проблема заключается в том, что я сравниваю первую букву со следующей и ту букву со следующей и т. Д., Чтобы увидеть, являются ли они одной и той же буквой. В настоящее время у меня есть:
System.out.print("Enter a string: ");
String s1 = reader.nextLine();
int sum = 0;
char ast = '*';
//System.out.println("Run length encoded version of string: ");
for (int counter = 0; s1.charAt(counter) <= s1.length()-1; counter++) {
for (int j = 0; s1.charAt(counter) == s1.charAt(j)+1; j++) {
sum++;
counter++;
}
if (sum >= 4) {
System.out.print(ast + s1.charAt(counter) + sum);
}
else {
System.out.print(s1.charAt(counter));
}
}
Я знаю, в чем заключается большая проблема в этом и почему она не работает, а именно, из сегмента
for (int j = 0; s1.charAt(counter) == s1.charAt(j)+1; j++) {
sum++;
counter++;
}
, поскольку он просто бесконечен,Есть ли правильный способ сделать это? Профессор упомянул, что это можно сделать без петель, и хотя я вижу, что это возможно, я не вижу, чтобы оно было коротким. Любая помощь будет оценена, спасибо!