Java的输入和输出
一、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类型的变量,只需做一点小小的改变,就能够实现功能!无疑他是最强大的!
注:在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
一、Java的输出
1. Sys.out.println("Hello Word") //输出并且换行
2. Sys.out.print("Hello Word") //输出不换行
3. Sys.out.printf("姓名:"+%s,name) //按格式输出
目前printf支持以下格式:
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
%c 单个字符
%d 十进制整数
%f 十进制浮点数
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%% 输出百分号%
下面对组成格式说明的各项加以说明:
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
①%:表示格式说明的起始符号,不可缺少。
②-:有-表示左对齐输出,如省略表示右对齐输出。
③0:有0表示指定空位填0,如省略表示指定空位不填。
④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。
⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。
1 package com.hone.test; 2 3 // "%"表示进行格式化输出, "%"之后的内容为格式的定义。 4 public class Printf { 5 public static void main(String[] args) { 6 double d = 345.678; 7 String s = "hello World"; 8 int a = 123; 9 10 //浮点型的输出 11 System.out.printf("%,d",a); //格式化输出数据,每三个数据加上一个, 12 System.out.println(); 13 System.out.printf("%f", d); // 345.678000 14 System.out.println(); 15 //"9.2"中的9表示输出的长度,2表示小数点后的位数。 345.678位数不够前面不上空格 16 System.out.printf("%9.3f", d); 17 System.out.println(); 18 System.out.printf("%+9.3f", d); //"+"表示输出的数带正负号 19 System.out.println(); 20 System.out.printf("%-9.3f", d); //"-"表示输出的数左对齐(默认为右对齐) 21 System.out.println(); 22 System.out.printf("%+-9.3f",d); //"+-"表示输出的数带正负号且左对齐 23 System.out.println(); 24 25 //整型的输出 26 System.out.printf("%d", a); //"d"表示输出十进制整数。 27 System.out.println(); 28 System.out.printf("%04d", a); //规定为4位,不够左边添加0 29 System.out.println(); 30 System.out.printf("%d%%", a); //如果想输出百分数,则连续用两个 %% 31 System.out.println(); 32 System.out.printf("%o", a); //"o"表示输出八进制整数。 33 System.out.println(); 34 System.out.printf("%x", a); //"x"表示输出八进制整数。 35 36 37 //字符串的输出 38 System.out.println(); 39 System.out.printf("%s%n", s); //输出字符串,其中 %n表示换行 40 41 System.out.printf("输出一个浮点数:%.3f,一个整数:%d,一个字符串:%s",d,a,s); //输出多个变量 42 43 } 44 45 }