繁体   English   中英

Java-打印拆分字符串的几个不同部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM