在Java中使用键盘输入数据的几种方法

 我来答
歌舞弄风流
2016-11-04 · TA获得超过560个赞
知道小有建树答主
回答量:679
采纳率:57%
帮助的人:132万
展开全部
在Java中不像C语言中那么方便直接使用scanf(),下面是我积累的一些方法:
1.控制台输入数据
1.1 主方法的形式参数
1.2 利用字节输入流
1.3 利用字符输入流
1.4 利用文本扫描类
2. 对话框输入数据
下面将针对这几种方法分别利用例子进行说明:
1. 控制台输入数据
1.1 主方法的形式参数
在Java中利用main(String args[])中的args数组来对参数进行赋值,有下例:
package InputTest;
public class DataKeyboardInput1 {
/**主方法的形式参数来输入数据
* DataKeyboardInput1.java
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(args[0]);
}
}
在命令行下输入javac DataKeyboardInput1.java --》Java DataKeyboardInput1 HelloWorld 输出就是 HelloWorld 了
1.2 利用字节输入流
字节输入流System.in 是类InputStream的常量对象,调用read()方法可以从键盘接收数据。实现的步骤是:先把数据读入字节数组中,然后利用字节数组定义字符串,最后把字符串转化为需要的数据类型。
package InputTest;
import java.io.*;
public class DataKeyboardInput2 {
/**利用字节输入流来输入数据
* DataKeyboardInput2.java
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte buf[]=new byte[10]; //字节数组,输入为10个
String str;
int num = 0;
try{
//把数据读入到字节数组中
System.in.read(buf);
//利用字节数组创建字符串
str=new String(buf,0);
//把字符串数据转换为整型数据
num=Integer.parseInt(str.trim());
}catch(Exception e){
System.out.print(e);
}System.out.println(num);
}
}
1.3 利用字符输入流
字符输入流BufferedReader是从字符输入流中读取文本,缓冲各个字符,从而提供字符,数组和行的高效读取。常用方法:
read(): 读取单个字符; readLine():读取一行字符,即为读取一个字符串
package InputTest;

import java.io.*;
public class DataKeyboardInput3 {

/**利用字符输入流来进行输入处理
* @param args
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str="";
int num = 0;
try{
str=br.readLine();
num=Integer.parseInt(str);
}catch(IOException e){
System.out.println(e.toString());
}System.out.println(num);
}
}
1.4 利用文本扫描类
文本扫描类Scanner是jdk5.0新增加的类,它是一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器,它使用分隔符模式将其输入分解为标记默认情况下该分隔符模式与空白匹配,然后使用不同的next方法将得到的标记转换为不同类型值。获取基本类型数据的方法是:
整型:nextInt() 单精度:nextFloat() 双精度: nextDouble() 字符串: next()

package InputTest;
import java.util.Scanner;
public class DataKeyboardInput4 {
/**利用文本扫描类来进行输入处理
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input=new Scanner(System.in);
int num=input.nextInt();
System.out.println(num);
}
}

2. 对话框输入数据
使用JOptionPane创建输入对话框,实现键盘输入
showConfirmDialog(): 询问一个确认问题,如yes/no/cancer
showInputDialog(): 提示要求某些输入
showMessageDialog(): 告知用户某事已经发生
其中,输入对话框的常用参数形式有:
showInputDialog(Object message) : message 表提示信息
showInputDialog(Object message,Object initialSelectionValue): 如果没有输入数据,则默认初始值为initalSlectionValue

package InputTest;
import javax.swing.JOptionPane;
public class DataInputDialog {
/**对话框输入数据
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str;
str=JOptionPane.showInputDialog("input data:");
int num=Integer.parseInt(str);
System.out.println(num);
}
}
清酒暖风Y
2016-11-03 · TA获得超过1434个赞
知道小有建树答主
回答量:1289
采纳率:60%
帮助的人:517万
展开全部
扫描器直接处理啦
Scanner
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天之鹰1986
2016-11-03 · TA获得超过278个赞
知道小有建树答主
回答量:727
采纳率:75%
帮助的人:231万
展开全部
我一般是采用 Scanner 的方法,其他的没了解过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式