控制台

Scanner sc = new Scanner (new BufferedInputStream(System.in));
Scanner sc = new Scanner (System.in);
// 读一个整数
int n = sc.nextInt();
// 读一个字符串
String s = sc.next();
// 读一个浮点数
double t = sc.nextDouble();
// 读一整行
String s = sc.nextLine();
// 判断是否还存在输入
sc.hasNext()Copy to clipboardErrorCopied

很多时候我们还需要去判断输入,并且根据不同的指令执行不同的操作:

Scanner scanner = new Scanner(System.in);
System.out.println("Command me please!");
String inputString = "";
while (!inputString.equals("quit")) {
 inputString = scanner.nextLine();
 String[] commandTokens = inputString.split(" ");
 if (commandTokens.length == 0) {
     scanner.close();
     throw new InputMismatchException("please enter a command");
 } else {
     String command = commandTokens[0];
     if (command.equals("search")) {
      System.out.println("this is where we can call search with "
           + makeArguments(commandTokens));
     }
 }
}
scanner.close();Copy to clipboardErrorCopied

或者将输入的参数连接:

public static String makeArguments(String[] commandTokens) {
 String completeStringArgument = "";
 for (int i = 1; i < commandTokens.length - 1; i++) {
     completeStringArgument += commandTokens[i] + " ";
 }
 return completeStringArgument + commandTokens[commandTokens.length - 1];
}Copy to clipboardErrorCopied

输出处理

在此前已经介绍过,控制台的输出由 print()println() 完成,这些方法都由类 PrintStream 定义,System.out 是该类对象的一个引用;PrintStream 继承了 OutputStream 类,并且实现了方法 write(),也可以用来往控制台写操作。

下面的例子用 write()把字符"A"和紧跟着的换行符输出到屏幕:

import java.io.*;
// 演示 System.out.write().
public class WriteDemo {
   public static void main(String args[]) {
      int b;
      b = 'A';
      System.out.write(b);
      System.out.write('\n');
   }
}