...output:
线程“main”java.lang.indexoutofboundsexception:在java.base/jdk.internal.util.preconditions.outofbounds(未知源)在java.base/jdk.internal.util.preconditions.outofbounds(未知源)在java.base/jdk.internal.util.preconditions.outoffbounds(未知源)在java.base/jdk.
我的程序是一个待办事项列表,如下所示:
...Java.............
导入java.util.scanner;导入java.util.ArrayList;
/**
* @author Troy
*
*/
public class HelloWorld {
/** A very simple to-do list that asks for input and then prints out the list
* in the form of an ArrayList: eg:
Here is today's to-do list:
[Wake up, Walk the dog,Eat breakfast, Make the bed]
*/
public static void main(String[] args) {
// I chose an ArrayList because the size does not have to be predetermined.
ArrayList<String> to_do = new<String>ArrayList();
System.out.println("What would you like to add to your to-do list?");
Scanner user_input = new Scanner(System.in);
//While the user_input still has entries, perform the following:
while (user_input.hasNextLine()) {
//Add next entry in the to-do list(user_input) to the ArrayList
to_do.add(user_input.nextLine());
System.out.println("\n");
/**Print out the ArrayList(to_do) 4 elements at a time. */
for (int i = 0; i < 5; i++ ) {
System.out.println("Your list for today is: " + "\n" + to_do.get(i));
}
}
}
}
...爪哇.................................................................
当我在程序末尾写入to_do.get(I)时,就会得到上面的错误消息。
另一个额外的问题是如何在不影响最终ArrayList输出的情况下结束while循环?
您的for-loop尝试访问列表中尚不存在的值。这就是为什么您会得到indexoutofboundsException
。
如果将for-loop中的测试表达式替换为检查列表大小的内容,而不是将其硬编码为5,它将工作:
for (int i = 0; i < to_do.size(); i++)
可以使用break
结束输入循环。通过先将输入赋值给局部变量,在将其添加到列表之前检查输入。例如,如果是空白(作为用户没有任何进一步输入的信号),则从while-loop执行break。
String input = user_input.nextLine();
if (" ".equals(input) || i == 4) {
break;
}
to_do.add(input);
如果您希望一次只打印4个条目,它将如下所示:
System.out.println("Your list for today is: " + "\n");
for (int page = 0; page <= (to_do.size() / 4); page++) {
for (int offset = 0; offset + page * 4 < to_do.size() && offset < 4; offset++) {
System.out.println(to_do.get(page * 4 + offset));
}
user_input.nextLine();
}
}
我不确定此错误消息的含义:*错误:请求成员开始在counter.std::映射
问题内容: 我如何在arraylist“列表”中打印元素“ e”? 问题答案: 您是要打印整个列表还是要遍历列表的每个元素?两种打印您的类有意义的东西的方法都需要重写该类的方法(如其他答案所述)以返回有效结果。 此代码的输出是:
我想从数组列表打印元素,但我得到错误的输出(.A@15db9742)
这是我的错误信息。 希望帮助您了解部分以及如何在此上下文中正确实现它。
所以我在做一个定时器包装函数,但是我在尝试打印参数的时候不断地得到错误。 我的计时器功能看起来是这样的: 理想的情况下,它也会打印kwargs,但显然这是一个完全不同的问题,尽管我会非常感谢如果有人帮助我做这件事。所以当没有一个论点的时候,我的结果很好: 给出:使用参数1000执行dummy_fn,取:0.2128157615661621 但是,如果我重新定义dummy_fn以获取更多的参数并传递
在这个程序中,我必须打印1到100之间的素数。要遵循的方法是——要找出素数,用存储在数组中的前一个素数除以一个数。如果给定的数字在除以任何前一个素数时留下0作为余数,那么它就不是素数。如果不是,它就是一个素数,并将其添加到数组中。在程序中——我初始化了一个由100个数字组成的数组,并将1到100个数字存储在数组a中(步骤1)。是我将存储素数的数组。我在(步骤2)中存储了的前两个值。在(步骤3)中,