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

Java-打印分割字符串的几个不同部分,java,while-loop,arrays,Java,While Loop,Arrays,我在打印数组时出错。虽然我得到了一个: 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[

我在打印数组时出错。虽然我得到了一个:

     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]);
}

您可以找到更多信息。

当您递增count变量时,您是在从数组打印之前进行的。您需要记住,Java数组总是从0开始,而不是从1开始。试试这个:

while(split.length>count){
System.out.println(“分割:+Split[count]);
计数++;
}
不过,建议您使用for循环,因为它们非常适合遍历数组。它们也比while循环使用更少的内存

for (int i = 0; i < split.length; i ++) {
  System.out.println("Split: " + split[i]);
  count ++;
}
for(int i=0;i

此外,ArrayOutOfBounds异常表示您试图访问数组中不存在的对象。

为什么在使用它之前要递增
count
?数组是从
0
lenght-1
的索引。我正在尝试这样做,当我键入3-665-45(或任何其他数字)时,3个数字可以分开,a可以放入字符串中。这里的while循环检查字符串的长度是否大于count。Count只是在它达到最大长度时停止它。谢谢,我知道Bounds的排列是什么,我只是不知道为什么在这种情况下它会抛出一个。只是为了确定:)快乐编码
for (int i = 0; i < split.length; i ++) {
  System.out.println("Split: " + split[i]);
  count ++;
}