java如何输入数据

Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!Java没有提供这样的函数也不代表遇到这种情况我们就束手无策,请你看以下三种解决方法吧:

以下将列出几种方法:

方法一:从控制台接收一个字符,然后将其打印出来

import java.io.*;

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

System.out.print("Enter a Char:");

char i = (char) System.in.read();

System.out.println("your char is :"+i);

}

虽然此方式实现了从键盘获取输入的字符,但是System.out.read()只能针对一个字符的获取,同时,获取进来的变量的类型只能是char,当我们输入一个数字,希望得到的也是一个整型变量的时候,我们还得修改其中的变量类型,这样就显得比较麻烦。

方法二:从控制台接收一个字符串,然后将其打印出来。 在这个题目中,我们需要用到BufferedReader类和InputStreamReader类

import java.io.*;

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

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

String str = null;

System.out.println("Enter your value:");

str = br.readLine();

System.out.println("your value is :"+str);

}

这样我们就能获取我们输入的字符串。

方法三:这种方法我认为是最简单,最强大的,就是用Scanner类

import java.util.Scanner;

public static void main(String [] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的姓名:");

String name = sc.nextLine();

System.out.println("请输入你的年龄:");

int age = sc.nextInt();

System.out.println("请输入你的工资:");

float salary = sc.nextFloat();

System.out.println("你的信息如下:");

System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);

}

这段代码已经表明,Scanner类不管是对于字符串还是整型数据或者float类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!

但是,在使用第三种输入方法的时候有一个需要注意的地方,就是nextLine()函数,在io包中有一个和他功能一样的函数我next()函数,他们的功能一样,但是在实现上有什么差别呢,请看下面代码:

public static void main(String [] args) {

Scanner sc = new Scanner(System.in);

System.out.println("请输入你的年龄:");

int age = sc.nextInt();

System.out.println("请输入你的姓名:");

String name = sc.nextLine();

System.out.println("请输入你的工资:");

float salary = sc.nextFloat();

System.out.println("你的信息如下:");

System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);

}

这段代码和上边第三种实现输入方法给出的例子代 码区别在于,这段代码先执行nextInit()再执行nextLine(),而第三种方法的例子是先执行nextLine(),再执行 nextInit(),当你在运行着两段代码的时候你会发现第三种方法的例子可以实现正常的输入,而这段代码却在输入年龄,敲击enter键后,跳过了输 入姓名,直接到了输入工资这里,(可以自己运行代码看看)这是为什么呢?其实,在执行nextInit()函数之后,敲击了enter回车键,回车符会被 nextLine()函数吸收,实际上是执行了nextLine()函数吸收了输入的回车符(并不是没有执行nextLine函数),前面讲到和 nextLine()功能一样的函数next(),他们的区别就在于:next()函数不会接收回车符和tab,或者空格键等,所以在使用 nextLine()函数的时候,要注意敲击的回车符有个被其吸收,导致程序出现BUG!!!

最后小小的总结一下next()和nextLine()的区别:

在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。

时间: 2024-10-12 16:30:34

java如何输入数据的相关文章

java -判断输入数据的类型

没什么说的,直接贴代码. package java_test; import java.util.Scanner; public class test_Scanner { public static void main(String[] args) { // TODO Auto-generated method stub long Long; String string; double Double; Scanner s =new Scanner(System.in); System.out.p

java 键盘输入数据

/* 直接使用readLine方法来完成键盘录入的一行数据的读取. readLine是字符流BufferedReader类中的方法. 而键盘录入的read方法是字节流InputStream中的方法. 字节转字符. */ import java.io.*; class TransStreamDemo { public static void main(String[] args) throws IOException { /* //获取键盘录入对象 InputStream in=System.in

java 16 -16 键盘输入数据求最大值

需求: 键盘录入多个数据,输入0时得到结果,输出最大的一个 分析: A:创建键盘录入 B:由于数据个数不确定,用集合接收 C:把键盘录入的数据放进集合中 D:因为没学集合的排序,所以得先把集合转成数组 public Object[] toArray() 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组. public <T> T[] toArray(T[] a) 按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组:返回数组的运行时类型是指定数组的运行时类型.

Java中从控制台输入数据的几种常用方法

一.使用标准输入串System.in //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字 //System.in.read()返回一个整数 //必须初始化 //int read = 0; char read = '0'; System.out.println("输入数据:"); try { //read = System.in.read(); read = (char) System.in.read(); }catch(Exception

Java中从控制台输入数据的几种常用方法(转)

一.使用标准输入串System.in  //System.in.read()一次只读入一个字节数据,而我们通常要取得一个字符串或一组数字  //System.in.read()返回一个整数  //必须初始化  //int read = 0;  char read = '0';  System.out.println("输入数据:");  try {   //read = System.in.read();   read = (char) System.in.read();  }catc

JAVA 根据用户输入数据求某年到某年有多少天

实例: import java.util.*; //求某年到某年有多少天 public class Test{ public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("=====求某年到某年有多少天====="); System.out.print("请输入开始年:"); int start = in.nextInt(); //获

[转]java实现,输入数据,空格继续,回车结束输入

普通版:可输入,可输出.带详细的注释 1 import java.util.Scanner; 2 3 public class SumDemo { 4 public static void main(String[] args) { 5 System.out.println("请输入两个数字,中间用空格隔开,例如5 5"); 6 //得到一个扫描器,用来扫描 系统的输入 7 Scanner input = new Scanner(System.in); 8 //申明一个临时的字符串变量

JAVA命令行参数输入 及 命令行参数输入数据到list中

命令行参数Java所有程序中都有一个main方法,而这个方法带有一个参数String args[]. 这个参数就是main方法接受的用户输入的参数列表,即命令行参数. 举例说明1——直接输出命令行参数的值 1 public class ArgsDemo { 2 public static void main(String[]args){ 3 4 int number= args.length; 5 System.out.println("共接受到"+number+"个参数&q

关于初学java从控制台上输入数据

1.首先导入Scanner包:即import java.util.Scanner; 2.写完类名和主方法后为Scanner类创建对象,即 Scanner sca=new Scanner(System.in);别忘了括号里的System.in 在写完了之后记得给自己提示,此时你要从键盘输入一个数 即System.out.println("请从键盘输入一个整数:"); 根据你需要输入的数据类型,创建一个变量用来接收从键盘输入的数据 即int a=sca.nextInt; 3.接下来写从键盘