2.4.1 使用标准输入输出流
1.数据的输出
(1)print()方法:实现不换行的数据输出;
(2)println()方法:与上面方法的差别是输出数据后将换行。
(3)printf()方法:带格式描述的数据输出。JDK1.5新增。
该方法包含两个参数,第1个参数中给出输出格式的描述,第2个参数为输出数据,其中,输出格式描述字符串中需要安排与输出数据对应的格式符。
常用格式符包括:
%d代表十进制数
%f代表浮点数
%e代表科学表示法的指数位数(指数形式,默认6位小数:1.500340e+03)
%n代表换行符
%x代表十六进制数
%s代表字符串
%c 单个字符
%% 输出百分号%
例:%13.8e :1.50034000e+03(总宽度13,小数8位)
输出语句中”+”的特殊性
2.数据的输入
(1) 字符类型数据的输入
利用标准输入流(System.in)的read()方法,可以从键盘读取字符。但要注意,read()方法从键盘获取的是输入的字符的字节表示形式(返回结果为int类型),需要使用强制转换将其转化为字符型 。 <br />例:char c=**(char)**System.in.read();
(2) 字符串的输入
- 将键盘输入的数据看作字符流,利用InputStreamReader将从键盘输入的字节流数据转化为字符序列来识别。
- 利用BufferedReader对字符流序列进行过滤,借助BufferedReader流对象提供的方法readLine()从键盘读取一个字符串。
通过流变换获取字符串
import java.io.*;
public class InputString{
public static void main(String args[]) {
String s=“”; 必须赋初值,否则编译出错
System.out.print ("Enter a String please: ");
try {
BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
s=in.readLine();
}
catch (IOException e) { }
System.out.println ("You've entered a String: " +s);
}
}
(3) 整数和双精度数的输入
先通过上面的方法获取一个由数字字符组成的字符串,然后通过下面的转换方法转换成需要的数据。
- Integer.parseInt(String s) :将数字字符串转化为整数 。
- Double.parseDouble(String s) :将字符串形式的数字数据转化为双精度数。
- 例如:
- 一个扫描器,使用分隔符分解它的输入,默认情况下用空格作为分隔符。Scanner的输入源取决于构造参数,以下从标准输入(键盘)获取数据
Scanner scanner = new Scanner(System.in);
- 常用方法:
- boolean hasNext() : 判是否有下一个数据
- int nextInt() :读取整数
- double nextDouble() :读取双精度数
- String nextLine() : 读取一行字符串
import java.util.Scanner;
public class test{
public static void main(String args[]){
Scanner s=new Scanner(System.in);
System.out.print("请输入3个数,用空格隔开:");
int a= s.nextInt();
int b= s.nextInt();
int c= s.nextInt();
int m = (a > b) ? a : b;
m = (m > c) ? m : c;
System.out.println("最大者="+m);
}
}
运行结果:
请输入3个数,用空格隔开:5 8 11
最大者=11
2.4.2 用swing对话框实现输入输出
```java import javax.swing.*; public class Test2{ public static void main(String args[]) { String s=JOptionPane.showInputDialog(“请输入你的姓名:”); JOptionPane.showMessageDialog(null,”华东交大欢迎你:” + s);
} }
```