java实例之接收用户控制台输入

一、源码

              /*
            在控制台接收用户输入数字
             by csdn--悦程序-攻城狮
              2014.11.25
              */
           import java.util.Scanner;
           public class ReceiveInput{
                      public static void main(String[] args){
                                 Scanner scan = new Scanner(System.in);  //创建Scanner扫描器来封装System类的in输入流
                                 System.out.println("请输入你的姓名:");
                                 String name = scan.nextLine();                 //获取一行文本
                                 System.out.println("请输入你的年龄:");
                                 int age = scan.nextInt();                          // 获取整数输入
                                 System.out.println("请输入你的身高:");
                                 double stature = scan.nextDouble();     // 获取double类型输入
                                 System.out.println("数据输入完毕。。。。。。");
                                 System.out.println(age+"岁的"+name+"在昨天晚上掉进了附近小区的小河沟里,\n"+"身高"+stature+"厘米的他,估计也无法承受住这次感冒的困扰。");
                       }

           }

二、知识总结

              1. java.util.Scanner 类 

                        a.主要功能是简化文本扫描。System.in提供的read方法是通过字节来读取数据的。

                       当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。

                       如实例程序。

                       b.常用方法:

                             Scanner类的常用方法

序号

   

类型

   

1

public Scanner(File source) throws
FileNotFoundException

构造

从文件中接收内容

2

public Scanner(InputStream source)

构造

从指定的字节输入

流中接收内容

3

public boolean hasNext(Pattern pattern)

普通

判断输入的数据是

否符合指定的正则标准

4

public boolean hasNextInt()

普通

判断输入的是否是整数

5

public boolean hasNextFloat()

普通

判断输入的是否是小数

6

public String next()

普通

接收内容

7

public String next(Pattern pattern)

普通

接收内容,进行正则验证

8

public int nextInt()

普通

接收数字

9

public float nextFloat()

普通

接收小数

10

public Scanner useDelimiter(String pattern)

普通

设置读取的分隔符

      

           Scanner类可以接收任意的输入流。

          在Scanner类中提供了一个可以接收InputStream类型的构造方法,这就表示只要是字节输入流的子类都可以通过Scanner类进行方便的读取。
    

 例:Scanner默认使用空格作为分割符来分隔文本,但允许你指定新的分隔符

            程序:

                       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());
                 }
         }

        将注释行去掉,将使用空格或逗号或点号作为分隔符。

2.BufferReader类

   a.BufferReader位于java.io包中,读取数据比较固定,这样格式也就相对来说比较单一。

             实例化:

                             BufferReader br = new BufferReader(new InputStreamReader(System.in));

            通过readLine();方法来读取数据,readLine()是按Enter回车来读取一行数据的,只要在回车键之前的都会被readLine();

            使用BufferReader输入一些字符之外的类型的数据,就要相对比较麻烦,需要通过一些XXXX.parseXxx();来转换相应的数据类型。

具体可见:http://book.51cto.com/art/200907/140914.htm,这里讲的较为系统。



你可能感兴趣的:(java开发)