控制台输入类java.util.Scanner

来源:互联网 发布:手机点位图软件 编辑:程序博客网 时间:2024/06/02 02:06

canner类最实用的地方表现在获取控制台输入。当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。

1 如何判断控制台输入结束?
按回车键是输入下一行,多行输入,要有个结束符标志,如下例子中的“exit”

 

[plain]
    public static void main(String[] args) { 
        Scanner s = new Scanner(System.in);  
        System.out.println("input files' name:");  
        while (true) {  
                String line = s.nextLine();  
                if (line.equals("exit")) break;  
                System.out.println(">>>" + line);  
        } //end while 

 public static void main(String[] args) {
  Scanner s = new Scanner(System.in);
        System.out.println("input files' name:");
        while (true) {
                String line = s.nextLine();
                if (line.equals("exit")) break;
                System.out.println(">>>" + line);
        } //end while
}
2 Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符

使用默认的空格分隔符:


[java]
      public static void main(String[] args) throws FileNotFoundException {  
                Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las");  
//                s.useDelimiter(" |,|\\.");   
                while (s.hasNext()) {  
                        System.out.println(s.next());  
                }  
        } 

        public static void main(String[] args) throws FileNotFoundException {
                Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf    ......asdfkl    las");
//                s.useDelimiter(" |,|\\.");
                while (s.hasNext()) {
                        System.out.println(s.next());
                }
        }输出如下
[plain]
123  
asdf  
sd  
45  
789  
sdf  
asdfl,sdf.sdfl,asdf  
......asdfkl  
las  
 
Process finished with exit code 0 

123
asdf
sd
45
789
sdf
asdfl,sdf.sdfl,asdf
......asdfkl
las

Process finished with exit code 0将注释行去掉,使用空格或逗号或点号作为分隔符,输出结果如下:


[plain]
123  
asdf  
sd  
45  
789  
sdf  
asdfl  
sdf  
sdfl  
asdf  
 
 
 
 
 
 
 
asdfkl  
 
las  
 
Process finished with exit code 0 

123
asdf
sd
45
789
sdf
asdfl
sdf
sdfl
asdf

 

 

 

asdfkl

las

Process finished with exit code 0


 

原创粉丝点击