java - 如何在 Java 中处理一维数组的跳过输入
问题描述
在这个程序中,该用户将有机会生成自己的单词搜索。在程序开始时,用户将看到一个指令菜单,他们可以在其中选择以下选项: 1. 创建单词搜索 2. 打印单词搜索 3. 查看单词搜索的解决方案 4. 退出程序
选择创建单词搜索时,将要求用户逐行输入他们选择的单词。这些单词将存储在一维数组中。用户必须输入最少 20 个词,最多 260 个。每批输入 20 个词,系统会询问用户是否要添加更多词。如果他们不这样做,程序将直接将一维数组转换为数组列表,然后创建单词搜索。如果用户选择添加更多单词,程序将提示他/她输入更多单词,直到达到最大单词数。选项 2 和 3 将只涉及一些循环并使用一些方法向用户显示有组织的输出。
该程序不允许我将单词输入单词数组。运行程序时,用户输入“1”创建单词搜索,然后程序指示用户逐行输入单词,但不让用户输入任何内容。控制台屏幕显示“Word Search created”,在此下方显示“输入无效,重试”。我在引入程序后立即创建了数组列表:List<String> words = new ArrayList<>();
我试图找出我哪里出错了,我什至尝试搜索这个,但没有什么能真正解决我的问题。
do {
WordArray wordArr = new WordArray();
showOptions();
choice = input.nextInt(); // Get choice input
if (choice == 1) {
System.out.println("Enter words of your choice line-by-line. You can enter a maximum of 260 words (i.e., 10 words per letter)");
System.out.println("");
// This for loop will loop around with it`s body the user decides they have added enough words and wish to proceed
for (int i = 0; i < words.size(); i++) {
words.add(input.nextLine());
if ((i + 1) % 20 == 0 && i != 0) {
// For every batch of 20 words entered, the program will ask the user this...
System.out.print("Do you want to keep adding words? Enter Y/N: ");
String answer = input.next().toUpperCase();
if (answer.equals("Y")) {
words.add(input.nextLine());
} if (answer.equals("N")) {
break;
}//end of inner if
}//end of outer if
}//end of for loop
createWordSearch(words);
解决方案
从这个聊天的讨论中,错误出现在for循环中
for (int i = 0; i < words.size(); i++)
是words.size()
0,所以要修复你应该使用
for (int i = 0; i <= 260; i++)
更改words.size()
为 260,其中 260 是用户可以输入的最大字数。
推荐阅读
- python - 我无法根据三个标准用 networkx 形成图表
- php - Laravel 验证:required_if 条件总是通过
- html - Safari:使用 % 设置图像高度
- javascript - 异步变量在条件逻辑中显示为空,但它存在于控制台日志中
- javascript - 链接文本不尊重 div 边界
- reactjs - 成帧器运动防止孩子观看父母的动画
- r - 用两个离散变量绘制多个图 - 如何在两个轴中包含所有离散变量
- c++ - 通过 Rcpp 在 R 包中的 Futhark
- ios - Swift iOS14 动画约束
- python - 如何设置超时来终止 nginx 工作人员?