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) 字符类型数据的输入

  1. 利用标准输入流(System.in)的read()方法,可以从键盘读取字符。但要注意,read()方法从键盘获取的是输入的字符的字节表示形式(返回结果为int类型),需要使用强制转换将其转化为字符型 <br />例:char c=**(char)**System.in.read();

(2) 字符串的输入

  1. 将键盘输入的数据看作字符流,利用InputStreamReader将从键盘输入的字节流数据转化为字符序列来识别。
  2. 利用BufferedReader对字符流序列进行过滤,借助BufferedReader流对象提供的方法readLine()从键盘读取一个字符串。

image.png

通过流变换获取字符串

image.png

  1. import java.io.*;
  2. public class InputString{
  3. public static void main(String args[]) {
  4. String s=“”; 必须赋初值,否则编译出错
  5. System.out.print ("Enter a String please: ");
  6. try {
  7. BufferedReader in= new BufferedReader(new InputStreamReader(System.in));
  8. s=in.readLine();
  9. }
  10. catch (IOException e) { }
  11. System.out.println ("You've entered a String: " +s);
  12. }
  13. }

(3) 整数和双精度数的输入

先通过上面的方法获取一个由数字字符组成的字符串,然后通过下面的转换方法转换成需要的数据。

  • Integer.parseInt(String s) :将数字字符串转化为整数 。
  • Double.parseDouble(String s) :将字符串形式的数字数据转化为双精度数。
  • 例如:
    • String x=”123”;int m= Integer.parseInt(x); //m 的值为123
    • x=”123.41”;double n= Double.parseDouble(x) ; //n的值为123.41

      补充:使用java.util.Scanner类

  • 一个扫描器,使用分隔符分解它的输入,默认情况下用空格作为分隔符。Scanner的输入源取决于构造参数,以下从标准输入(键盘)获取数据

Scanner scanner = new Scanner(System.in);

  • 常用方法:
    • boolean hasNext() : 判是否有下一个数据
    • int nextInt() :读取整数
    • double nextDouble() :读取双精度数
    • String nextLine() : 读取一行字符串
      1. import java.util.Scanner;
      2. public class test{
      3. public static void main(String args[]){
      4. Scanner s=new Scanner(System.in);
      5. System.out.print("请输入3个数,用空格隔开:");
      6. int a= s.nextInt();
      7. int b= s.nextInt();
      8. int c= s.nextInt();
      9. int m = (a > b) ? a : b;
      10. m = (m > c) ? m : c;
      11. System.out.println("最大者="+m);
      12. }
      13. }
      14. 运行结果:
      15. 请输入3个数,用空格隔开:5 8 11
      16. 最大者=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);
      } }

``` image.pngimage.png