java程序直接跳过循环 | 您所在的位置:网站首页 › java跳过代码 › java程序直接跳过循环 |
我的任务是编写一个方法,该方法应该组合连续出现两次以上的字母.示例:ABBCCCDDDD – > ABBC3D4 我被告知我们库的In.java和Out.java用于输入和输出.我的问题是该方法跳过for循环.我希望你能帮助我.如果您对代码有任何疑问,请问我 public class Aufgabe9_4 { static void codieren(String s){ int Zähler = 0; char[] a = s.toUpperCase().toCharArray(); for (int i = 0; i if (a[i] == a[i+1] && a[i] ==a[i+2]){ Zähler = 3; while (a[i] == a[i+Zähler]) Zähler++; i = i + Zähler; } Out.println(a[i] + Zähler); } } public static void main(String args[]) { Out.println("Geben sie eine Reihenfolge von Buchstaben ein!"); String s = In.readString(); Out.println("Die Codierung lautet:"); codieren(s); } } 解决方法: 我已经更正了代码并获得了预期的结果:ABBC3D4 >所有数组访问必须在数组范围内.当您访问[i 2]时,请确保您的i值始终为 >使用while循环,它有点棘手,因为[iZähler]也必须 >原始代码也是如此:i =iZähler.你超过1,所以我必须添加 – 1.它确保打印(a [i])不会失败,通过否定最后一个Zähler的效果. > println(a [i]Zähler)将打印与Zähler一起添加的[i]的数字和(char值是一个整数).显然这不是你想要的,所以我把它分开了. >我还添加了检查if(Zähler!= 0),因为您不希望打印零. >打印功能,而不是println,打印在同一行. >我在下面的代码中没有解决的问题:当您在for循环中访问数组时,循环参数应该更好地使用相同数组的长度.所以在右边,你应该使用a.length,而不是s.length(). >其他:尝试使用String.charAt()重写程序. 工作计划在Ideone here (link)上. static void codieren(String s){ int Zähler = 0; char[] a = s.toUpperCase().toCharArray(); for (int i = 0; i if (a[i] == a[i+1] && a[i] ==a[i+2]){ Zähler = 3; while ((i+Zähler) < s.length() && a[i] == a[i+Zähler]) { Zähler++; } i = i + Zähler - 1; } System.out.print(a[i]); if (Zähler != 0) { System.out.print(String.valueOf(Zähler)); } } } 标签:java,for-loop 来源: https://codeday.me/bug/20190612/1225146.html |
CopyRight 2018-2019 实验室设备网 版权所有 |