下面详解main()方法为什么采用这个方法签名。
Scanner主要提供了两个方法来扫描输入:
import java.util.Scanner;
public class ScannerKeyBoardTest {
public static void main(String[] args) {
//System.in 代表标准输入,就是键盘输入
Scanner sc = new Scanner(System.in);
//增加下面一行将只把回车作为分隔符
// sc.useDelimiter("\n")
// 判断是否还有下一个输入项
while (sc.hasNext()){
//输出输入项
System.out.println("键盘输入的内容是:" +
sc.next());
}
}
}
事实上,Scanner提供了两个简单的方法来逐行读取。
import java.util.Scanner;
public class ScannerLongTest {
public static void main(String[] args) {
// System.in 代表标准输入,就是键盘输入
Scanner sc = new Scanner(System.in);
// 判断是否还有下一个long型整数
while (sc.hasNextLong()){
// 输出输入项
System.out.println("键盘输入的内容是:"
+ sc.nextLong());
}
}
}
Object类提供了如下几个常用方法:
Date类的两个构造器:
Date类的方法:
总体来说,Date是一个设计相当糟糕的类,因此Java官方推荐尽量少用Date的构造器和方法。
Calendar类提供了大量访问、修改日期时间的方法,常用方法如下:
如下程序示范了Calendar类的常规用法:
import java.util.Calendar;
public class CalendatTest {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
// 取出年
System.out.println(c.get(Calendar.YEAR));
// 取出月
System.out.println(c.get(Calendar.MONTH));
// 取出日
System.out.println(c.get(Calendar.DATE));
c.set(2003, 10, 23, 12, 32, 23);
System.out.println(c.getTime());
// 将Calendar的年前推一年
c.add(Calendar.YEAR, -1);
System.out.println(c.getTime());
// 将Calendar的月前推8个月
c.roll(Calendar.MONTH, -8);
System.out.println(c.getTime());
}
}
Calendar类还有如下几个注意点
1.add和roll的区别
(1)add有如下两条规则:
①当被修改的字段超出它允许的范围时,会发生进位,即上一级字段也会增大。
②如下下一级字段也需要改变,那么该字段会修正到变化最小的值。
(2)roll()的规则与add()处理规则不同,当修改的字段超出了它允许的范围时,上一级字段不会增大。
(3)下一级字段的处理规则与add()相似。
2.设置Calendar的容错性
import java.util.Calendar;
public class LenientTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
// 结果是YEAR字段加1,MONTH字段为1(2月)
cal.set(Calendar.MONTH, 13);
System.out.println(cal.getTime());
// 关闭容错性
cal.setLenient(false);
// 导致程序运行时异常
cal.set(Calendar.MONTH, 13);
System.out.println(cal.getTime());
}
}
3.set方法延迟修改
import java.util.Calendar;
public class LazyTest {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(2003, 7, 31);
// 将月份设为9,但9月31日不存在
// 如果立即修改,系统将会把cal自动调整到10月1日
cal.set(Calendar.MONTH, 8);
// 下面代码输出10月1日
// System.out.println(cal.getTime());
// 设置DATE字段为5
cal.set(Calendar.DATE, 5);
System.out.println(cal.getTime());
}
}
Java 8 专门新增了一个java.time包,该包下包含了如下常用的类:
获取DateTimeFormatter对象有如下三种常见的方式:
使用DateTimeFormatter将日期、时间(LocalDate、LocalDateTime、LocalTime等实例)格式化为字符串,可通过如下两种方式:
1.定义一个长度为10的整数数组,可用于保存用户通过控制台输入的10个整数。并计算它们的平均值、最大值、最小值。
2.将字符串“ABCDEFG”中的“CD”截取出来;再将“B”、“F”截取出来。
3.将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组。得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H]。