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