代码示例:
import java.util.Scanner; import java.util.ArrayList;
public class BaseE {
public static void main(String[] args) { Scanner sc = new Scanner(System.in);
ArrayList<String> words = new ArrayList<String>();
System.out.println("Enter text: ");
while (sc.hasNextLine()) {
words.add(sc.nextLine());
if(sc.nextLine().equals("STOP"))
{
break;
}
}
System.out.println(words);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这段Java代码示例展示了一个简单的控制台程序,该程序允许用户输入文本行,并将每一行文本添加到一个ArrayList
中,直到用户输入"STOP"为止。然后,程序会打印出所有收集到的文本行。下面是对此代码的详细解释:
导入所需库:
import java.util.Scanner;
用于读取用户的键盘输入。import java.util.ArrayList;
引入ArrayList类,它是一个动态数组,可以存储集合类型的数据。定义主类 public class BaseE
是程序的入口点。
主方法 public static void main(String[] args)
是Java程序的执行起点。
创建Scanner对象 Scanner sc = new Scanner(System.in);
创建Scanner实例来读取标准输入(即用户的键盘输入)。
创建ArrayList ArrayList<String> words = new ArrayList<>();
定义一个ArrayList来存储字符串。这里使用了泛型 <String>
来指定ArrayList中元素的类型。
提示用户输入 System.out.println("Enter text: ");
循环读取输入并处理:
while (sc.hasNextLine())
循环检查是否有下一行输入。words.add(sc.nextLine());
读取一行输入并将其添加到ArrayList中。if(sc.nextLine().equals("STOP"))
再次调用了 sc.nextLine()
,这会导致跳过一行输入。正确的做法是先读取一行再判断是否为"STOP",避免多读取一次。修正后的循环部分应该如下所示:
String line;
while (true) {
line = sc.nextLine();
if(line.equals("STOP")){
break;
}
words.add(line);
}
System.out.println(words);
打印ArrayList中的所有内容,显示用户输入的文本行。综上所述,这个程序旨在持续接收用户输入的文本行,直到用户输入"STOP"为止,然后输出所有输入的文本行。但原代码存在一个小错误,已提供修正方案。