import java.util.Scanner;
public class ScannerDemo {
   public static void main(String[] args) {
      Scanner  scanner=new Scanner(System.in);
      canner.useDelimiter("\n");
      System.out.println("请输入数据:");
      String str=scanner.next();
      System.out.println(str); 
   }
}
上面的程序在命令行输入"hello world"时,命令行会原样输出。
因为这儿使用换行分隔符\n,所以单词间的空格也输出了。当我
换成useDelimiter("\t");试图在命令行输入一段字符后打一个空
格而不是换行后命令行就会有输出。结果JVM没有停止,一直处于
阻塞状态,命令行没有输出。怎样使命令行遇到空格就输出??

解决方案 »

  1.   

    空格 scanner.useDelimiter(" ");
    useDelimiter("\t"); 按一个Tab后按enter就会结束import java.util.Scanner;
    public class ScannerDemo {
      public static void main(String[] args) {
      Scanner scanner=new Scanner(System.in);
      scanner.useDelimiter("\t");
      System.out.println("请输入数据:");
      String str=scanner.next();
      System.out.println(str); 
      System.out.println(scanner.delimiter()+":ok"); 
      }
    }
      

  2.   

    这儿无论使用什么分隔符,都必须是\r作为结束符,即必须按enter才会有输出??
      

  3.   


    对,用System.in读入时,按enter会有输出