zoukankan      html  css  js  c++  java
  • Java键盘读入方法

      Java键盘读入方法由广州疯狂软件教育java培训分享:

      一、java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。

      实例程序:

      1、利用 Scanner 实现从键盘读入integer或float 型数据

      //import java.io.*;

      import java.util.*;

      public class InputTest{

      public static void main(String[] args){

      Scanner in = new Scanner(System.in); //Scanner类

      System.out.println("Please input a float number:");

      float a = in.nextFloat(); //接收float数据

      System.out.println("Please input a string: "); //这里试了一下输入String数据,但中间有空格就不能显示,Scanner类还不具有这功能

      Scanner str = new Scanner(System.in);

      System.out.println("The string is :" + str.next());

      System.out.println("The float number is: " + a);

      for(int i = 0;i < 4;i++){

      System.out.println("Please input a int number: "); //for循环接收int型数据

      int b = in.nextInt();

      System.out.println("The int number is: " + b);

      }

      }

      }

      2、利用 BufferedReader实现从键盘读入字符串并写进文件abc.txt中

      import java.io.*;

      public class InputTest{

      public static void main(String[] args) throws IOException{

      BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

      BufferedWriter buf2 = new BufferedWriter(new FileWriter("abx.txt"));

      String str = buf.readLine();

      while(!str.equals("exit")){

      buf2.write(str);

      buf2.newLine();

      str = buf.readLine();

      }

      buf.close();

      buf2.close();

      }

      }

      关于JDK1.5 Scanner类的说明

      Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.

      Scanner reader=new Scanner(System.in);

      然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:

      next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()

      使用nextLine()方法输入行中可能包含空格.如果读取的是一个单词,则可调用.next()方法

      3、Scanner和BufferedReader的区别

      在命令行模式下要输入数据至程序中时,我们可以使用标准输入串对象System.in.但是,我们并不经常直接使用它,因为System.in提供的 read方法每次只能读取一个字节的数据,而我们平时所应用的通常是读取一个字符串或者是一个数字,所以read方法所以提供的功能,对我们来说并没有太大的用处.

      在Java SE 6中,可以使用Scanner类取得用户的输入,Scanner类位于java.util包中,如果你要使用Scanner取得用户输入的话,要加上 import java.util.Scanner;这条语句.import的功能是告诉编译器,你将使用java.util包中的Scanner类.

      我们来看一个例子:

      import java.util.Scanner;

      public class TestScanner{

      public static void main(String[] args){

      Scanner scan = new Scanner(System.in);

      System.out.println("请输入一个字符串:");

      System.out.println("您输入的字符串是:" + scan.next());

      }

      }

      运行上面的程序,你将会看到你输入的字符串将在下面原样显示出来.

      我们来看看这个程序中每条语句的意思:

      new是创建一个对象,程序中new的意思是创建了一个Scanner类的对象scan.但是在创建Scanner类的对象时,需要用System.in 作为它的参数,也可以将Scanner看作是System.in对象的支持者,System.in取得用户输入的内容后,交给Scanner来作一些处理.

      Scanner类中提供了多个方法:

      next():取得一个字符串;

      nextInt():将取得的字符串转换成int类型的整数;

      nextFloat():将取得的字符串转换成float型;

      nextBoolean():将取得的字符串转换成boolean型;

      用Scanner获得用户的输入非常的方便,但是Scanner取得输入的依据是空格符,包括空格键,Tab键和Enter键.当按下这其中的任一键时,Scanner就会返回下一个输入. 当你输入的内容中间包括空格时,显然,使用Scanner就不能完整的获得你输入的字符串.这时候我们可以考虑使用BufferedReader类取得输入.其实在Java SE 1.4及以前的版本中,尚没有提供Scanner方法,我们获得输入时也是使用BufferReader的.

      BufferedReader类位于java.io包中,所以要使用这个类,就要引入java.io这个包:import java.io.BufferedReader.

      使用BufferedReader对象的readLine()方法必须处理java.io.IOException异常(Exception).

      使用BufferedReader来取得输入,理解起来要复杂得多.但是使用这个方法是固定的,每次使用前先如法炮制就可以了.

      BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));

      String text = buffer.readLine();

      readLine()方法会返回用户在按下Enter键之前的所有字符输入,不包括最后按下的Enter返回字符.

      完整的示例程序如下:

      import java.io.BufferedReader;

      public class TestBufferedReader{

      public static void main(String[] args) throws IOException{

      BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));

      System.out.println("请输入一串字符串");

      String text = buffer.readLine();

      System.out.println("您输入的字符串是:" + text);

      }

      }

      4、如下面的程序所示:class StringTest

      {

      public static void main(String[] args)

      {

      System.out.println(args[0]);

      System.out.println(args[1]);

      System.out.println(args[2]);

      }

      }

      在执行语句即:java + 类名后面输入内容,即会被args接收,

      因为args是接收命令行参数的。

      疯狂软件教育中心紧扣IT前沿技术的脉搏,高瞻远瞩立于潮头,引领行业标杆,开创IT教育培训的新天地,被称为新式IT教育的“黄埔军校”。疯狂软件教育中心主要面向大学生和准大学生的长期就业培训、企业员工定制内训、在职工程师的短期高端培训以及企业级应用的产品研发,其专业服务和质量承诺在客户中赢得广泛的声誉。

      疯狂软件教育中心结合自身特色,打破固有思维模式,以突出实战性,系统性,学识转换相结合的理念体系指引下,注重如何将培训内容真正转化为实操经验,以此促进工作能力的达成。在疯狂软件学院,学员通过参与企业实际项目开发,学以致用,获得实际项目经验。凭借自身强悍的师资、一流的课程、真实的项目、超高的就业率已经让广大南方学子成功走上软件工程师职业道路,大量毕业即失业的学子已通过疯狂软件教育中心实现了就业。

  • 相关阅读:
    【贪心】【堆】Gym
    【并查集】Gym
    【拓扑排序】【bitset】Gym
    【递归】【线段树】【堆】AtCoder Regular Contest 080 E
    【二分图】【并查集】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem L. Canonical duel
    【动态规划】【滚动数组】【bitset】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem J. Terminal
    【二分】【字符串哈希】【二分图最大匹配】【最大流】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem I. Minimum Prefix
    【枚举】【最小表示法】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem F. Matrix Game
    【推导】【构造】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem E. Space Tourists
    【推导】【贪心】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem D. Clones and Treasures
  • 原文地址:https://www.cnblogs.com/gojava/p/3658369.html
Copyright © 2011-2022 走看看