如何在 java 中使用扫描仪仅接受用户输入的特定数量的行

How can I accept only a specific number of lines from user input using scanner in java

提问人:Lesley 提问时间:10/1/2022 更新时间:10/2/2022 访问量:71

问:

我正在研究一种吸收方法,我专门接受用户的 8 行文本并将每个单词打印在自己的行上,我正在努力保持行数,并且只有在用户输入正好是 8 行时才打印单词。这就是我到目前为止所拥有的

class EightLines{
    public static void main(String[] args){
        System.out.println("Enter 8 lines:");
        Scanner input = new Scanner(System.in);
        
        
        
        
        while (input.hasNextLine()){
        String line = input.nextLine();
        printwords(line);}
        }
        
    
  public static void printwords(String line) {     
            


                //String line = input.nextLine();
                line = line.trim();
                String[] arrofwords = line.split("[;:,.!?' ']");
                for (int j=0;j<arrofwords.length;j++){
                    String word = arrofwords[j];
                   if (word == " "){System.out.print("");}
                    
                    else{
                    System.out.println(arrofwords[j]);}
                }
            
          
        }
    
}```
输入 java.util.scanner

评论


答:

1赞 Arvind Kumar Avinash 10/1/2022 #1

您可以使用大小为 8 的数组来存储输入行,然后打印它们的单词。

final int LIMIT =8;
String [] arr = new String[LIMIT];

// Input
for (int i = 0; i < LIMIT; i++) {
    arr[i] = input.nextLine();
}

// Print
for (int i = 0; i < LIMIT; i++) {
    printwords(arr[i]);
}

// Alternatively, you can use a for-each loop to process elements
/*
for (String str: arr) {
    printwords(str);
}
*/

如果要同时处理输入和打印,则不需要数组。

for (int i = 0; i < 8; i++) {
    String line = input.nextLine();
    printwords(line);
}