java输入时怎么通过回车来结束输入
吴美隆 2023-09-16编程经验
一、通过Scanner类来实现输入结束importjava.util.Scanner;publicclassScannerDemo{publicstaticvoidmain(String[]args){Scan
一、通过Scanner类来实现输入结束
import java.util.Scanner; public class ScannerDemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入字符串:"); while (sc.hasNext()) { String str = sc.nextLine(); if ("exit".equals(str)) { System.out.println("输入结束!"); break; } System.out.println("输入的字符串为:" + str); System.out.print("请继续输入字符串(输入exit结束):"); } } }
Scanner类是Java.util包中的一个类,可以用于读取控制台数据。在以上代码中,通过while循环,不断读取用户输入的数据,当输入exit时,结束循环。
二、通过Console类来实现输入结束
使用Scanner类可以实现从控制台读取数据,但Scanner类无法带有控制台的颜色和特殊属性。为了能够实现带属性的命令行输入和读取,Java 6 提供了新的 Console 类。这是一个跨平台的类,可以实现在呼叫控制台的窗口中输入和输出文本。
import java.io.Console; public class ConsoleDemo { public static void main(String[] args) { Console console = System.console(); System.out.print("请输入字符串:"); String str = console.readLine(); while (!"exit".equals(str)) { System.out.println("输入的字符串为:" + str); str = console.readLine("请继续输入字符串(输入exit结束):"); } System.out.print("输入结束!"); } }
在以上代码中,使用System.console()方法获取Console对象,然后使用readLine()方法从控制台读取数据。当输入exit时,结束循环,另外还可以使用readPassword()方法实现密码输入。
三、通过BufferedReader类来实现输入结束
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class BufferedReaderDemo { public static void main(String[] args) { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.print("请输入字符串:"); try { String str = br.readLine(); while (!"exit".equals(str)) { System.out.println("输入的字符串为:" + str); System.out.print("请继续输入字符串(输入exit结束):"); str = br.readLine(); } System.out.print("输入结束!"); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { } } } } }
BufferedReader类可以实现从控制台读取数据,并且可以一次读取多个字符。在以上代码中,使用BufferedReader类一次读取一行数据,当输入exit时,结束循环。
四、总结
在Java中,有多种方式可以实现从控制台读取数据并以回车结束输入。通过Scanner类、Console类和BufferedReader类,我们可以方便地实现这一需求,并根据实际的业务需要来选择合适的方式。另外,在使用以上类进行输入时,应该注意关闭输入流,避免资源浪费和内存泄露。
很赞哦! ()