猿问

使用之前,是否必须将sc.nextLine()中的数据分配给变量?

到目前为止,每次使用扫描程序对象时,我都会将输入分配给新的字符串变量,例如:


String word = reader.nextLine();

然后,如果我想在if语句中使用输入,我会写:


if(word.isEmpty()){}

但这似乎几乎是一个额外的步骤,而不是仅仅这样做:


if(reader.nextLine().isEmpty()){}

但是,当我尝试这样做时,我的程序功能通常会出现某种问题。有没有一种方法可以跳过我将不再使用的字符串来做到这一点?


这是我要在没有String对象的情况下尝试使用的代码:


import java.util.ArrayList;

import java.util.Collections;

import java.util.Scanner;


public class WordsInReverseOrder {

    public static void main(String[] args) {

        Scanner reader = new Scanner(System.in);

        ArrayList<String> words = new ArrayList<String>();


        while(true){

            System.out.println("Type a word: ");


            if(reader.nextLine().isEmpty()){


                Collections.reverse(words);


                for(String word1 : words){


                    System.out.println(word1);

                }

                break;

            }


            else{

                words.add(reader.nextLine());

            }

        }

    }

}


鸿蒙传说
浏览 199回答 1
1回答

守着一只汪

如果您需要对扫描的单词进行某些操作并想要检查isEmpty(),则需要一个变量来两次访问该单词。因此,如果您要做的事情不止一件事,则需要一个变量。如果只做一件事,则可以“内联”变量。您的问题的答案是“是”。当您不需要第一个单词/行的内容时,可以“内联”您的变量,这意味着不需要变量。
随时随地看视频慕课网APP

相关分类

Java
我要回答