输出:
一个是输出并换行,一个是输出不换行,还有一个是格式化输出
System.out.println("Hello world!");
System.out.print("Hello ");
System.out.println("world!");
//%d 是整行,%s是字符串,%b布尔类型,%f浮点类型
//占位符和后面的变量名一一对应
System.out.printf("%d/%s%b",变量名1,变量名2,变量名3);
//第1行输出的结果与第2行加上第3行输出的结果是一样的。
2.输入:
输入就比较复杂了,需要导入一个包(java.util.Scanner)。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个数字");
int in = scanner.nextInt();
System.out.print(in);
System.out.print("请输入一个浮点");
double dou = scanner.nextDouble();
System.out.print(dou);
System.out.print("请输入一个字符");
String ch = scanner.next();
System.out.print(dou);
}
}
1.接受字符串的方法有两个:
String str = scanner.next();
String str1 = scanner.nextLine();
next()与nextLine()的区别:
next():
一定要读取到有效字符后才可以结束输入。
对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
next() 不能得到带有空格的字符串。
nextLine():
以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
可以获得空白。
如果要输入int或float类型的数据,再Scanner类中也有支持,但是再输入之前最好先使用hasNextXxx()方法进行验证,再使用nextXxx()来读取:
import Java.util.Scanner;
public class ScannerDemo{
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
System.out.print("输入整数:");
//判断输入的是否是整数
if (scanner.hasNextInt()){
//接受整数
int i=scanner.nextInt();
System.out.println("整数数据:"+i);
}else {
//输入错误信息
System.out.println("输入的不是整数!");
}
System.out.print("输入小数:");
if (scanner.hasNextFloat()){
//判断输入的是否是小数
float f=scanner.nextFloat();
//接受小数
System.out.println("小数数据:"+f);
}else {
//输入错误信息
System.out.println("输入的不是小数!");
}
//关闭此扫描器
scanner.close();
}
}
当然如果输入错误想再次输入就得把类重新赋值:
public static void main(String[] args) {
Scanner scanner= new Scanner(System.in);
while (true){
System.out.print("请输入整数:");
if (scanner.hasNextInt()){
int i = scanner.nextInt();
System.out.println("你输入的值是:"+i);
break;
}else {
scanner = new Scanner(System.in);
System.out.println("你的输入错误.请重新输入!");
}
}
}