java – 为什么代码跳过for循环
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 为什么代码跳过for循环,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1891字,纯文字阅读大概需要3分钟。
内容图文
![java – 为什么代码跳过for循环](/upload/InfoBanner/zyjiaocheng/804/a3ddcbae20244bb4b7c0d6c9e613259d.jpg)
我的任务是编写一个方法,该方法应该组合连续出现两次以上的字母.示例: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<s.length()-1; 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值始终为<长度为2的. (换句话说,您正在访问的索引(i 2)必须始终为< length.)
>使用while循环,它有点棘手,因为[iZähler]也必须<长度,但Zähler可以是任何价值.为此我添加了(iZähler)< s.length()作为支票.它必须在[i] == a [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<s.length()-2; 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循环全部内容,希望文章能够帮你解决java – 为什么代码跳过for循环所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。