如何在Java中处理一维数组的跳过输入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Java中处理一维数组的跳过输入相关的知识,希望对你有一定的参考价值。

在此程序中,此用户将有机会生成自己的单词搜索。在程序开始时,将向用户显示一个说明菜单,他们可以在这些菜单中选择以下选项:1。创建单词搜索2.打印单词搜索3.查看单词搜索的解决方案4.退出程序

当选择创建单词搜索时,将要求用户逐行输入他们选择的单词。这些单词将存储在一维数组中。用户必须输入最少20个单词,最多260个单词。每批20个单词,将询问用户是否要添加更多单词。如果他们不这样做,程序将直接跳转到将1-D数组转换为数组列表,然后创建单词搜索。如果用户选择添加更多单词,程序将提示他/她输入更多单词,直到达到最大单词数。选项2和3将只涉及一些循环并使用一些方法向用户显示有组织的输出。

该程序不允许我在单词数组中输入单词。运行程序时,用户输入“1”创建单词搜索,然后程序指示用户逐行输入单词,但不允许用户输入任何内容。控制台屏幕显示“已创建Word搜索”,在此下方显示“无效输入,请重试”。我在介绍程序后立即创建了数组列表: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);				
答案

this chat的讨论中,错误是在for循环中

for (int i = 0; i < words.size(); i++)

words.size()是0,所以要解决你应该使用

for (int i = 0; i <= 260; i++)

words.size()更改为260,其中260是用户可以输入的最大单词量。

以上是关于如何在Java中处理一维数组的跳过输入的主要内容,如果未能解决你的问题,请参考以下文章

Spring Batch 中的跳过是如何实现的?

使用FilterInputStream的跳过方法

Discord 音乐机器人上的跳过功能会删除所有数组条目

初识lucene(想看代码的跳过)

您如何在Java程序中实现对对象数组的跳转搜索?

Java中如何获取多维数组的长度