到目前为止,每次使用扫描器对象时,我都会将输入分配给新的字符串变量,例如:
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());
}
}
}
}
答案 0 :(得分:1)
如果您需要对扫描的单词进行某些操作,并且想要检查isEmpty()而不是需要两次访问该单词的变量。
因此,如果您做的不只一件事情,则需要一个变量。如果您只做一件事,则可以“内联”变量。
您的问题的答案是“是”。当您不需要第一个单词/行的内容时,可以“内联”您的变量,这意味着不需要变量。