在使用变量之前,我是否必须将 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());
}
}
}
}

如果您需要对扫描的单词执行某些操作想要检查isEmpty((,则需要一个变量来访问该单词两次。

所以,如果你做不止一件事,你需要一个变量。如果你只做一件事,你可以"内联"变量。

您的问题的答案是"是"。当您不需要第一个单词/行的内容时,您可以"内联"您的变量,这意味着不需要变量。

最新更新