[英]Java - Printing several different parts of a split string
尝试打印数组时出现错误。 虽然我得到:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at FlipProj.main(FlipProj.java:20)
错误信息。
我的代码:
import java.util.Scanner;
public class FlipProj
{
public static void main(String args[])
{
Scanner s = new Scanner(System.in);
System.out.println("Innput an equation:");
String e = s.next();
String split[] = e.split("-");
int count = 0;
while (split.length > count)
{
count++;
System.out.println("Splt: " + split[count]);
}
s.close();
}
}
有什么办法可以正确地做到这一点?
您增加得太早,这应该可以工作:
while (split.length > count) {
System.out.println("Splt: " + split[count]);
count++;
}
请记住,数组从0开始索引。
需要考虑的一些(更清洁的)替代方法:
//using a for loop
for (int i=0; i<split.length; i++) {
System.out.println("Splt: " + split[i]);
}
要么
//using an enhanced for loop (since Java 5)
for (String str: split) {
System.out.println("Splt: " + str);
}
您可以在此处找到更多信息。
当您增加计数变量时,就是在从阵列打印之前执行此操作。 您需要记住,Java数组始终从0而不是1开始。
while (split.length > count){
System.out.println("Split: " + split[count]);
count ++;
}
但是建议您使用for循环,因为它们可以很好地遍历数组。 与while循环相比,它们还使用更少的内存。
for (int i = 0; i < split.length; i ++) {
System.out.println("Split: " + split[i]);
count ++;
}
另外,ArrayOutOfBounds异常表示您正在尝试访问数组中不存在的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.