在Java中,控制台输入通常是通过System.in
这个标准输入流来实现的,经常与Scanner
类一起使用以便更方便地读取用户输入。
基础概念:
System.in
: 这是Java中的一个标准输入流,通常与键盘输入相关联。Scanner
类: Java的util
包中提供了一个Scanner
类,它可以方便地读取不同类型的输入数据。相关优势:
Scanner
类提供了多种方法来读取不同类型的输入,如nextInt()
, nextLine()
, nextDouble()
等。应用场景:
示例代码:
import java.util.Scanner;
public class ConsoleInputExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的名字:");
String name = scanner.nextLine();
System.out.println("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("您好," + name + "!您今年" + age + "岁。");
scanner.close();
}
}
常见问题及解决方法:
Scanner
会抛出一个InputMismatchException
。为了解决这个问题,可以在读取输入之前使用hasNextInt()
, hasNextLine()
等方法进行检查。Scanner
后,应该调用close()
方法来关闭它,以释放与其相关联的资源。如果不关闭,可能会导致资源泄露。其他注意事项:
nextInt()
, nextDouble()
等方法后,输入流中可能还残留一个换行符。如果接下来要读取一行文本,可以使用nextLine()
来消耗掉这个换行符。领取专属 10元无门槛券
手把手带您无忧上云