1.int类型与String类型的相互转换
(1)、int->String
public static String valueOf(int i):返回int参数的字符串表示形式。该方法是String类型中的方法。
例:
int num = 100;
String s = String.valueOf(num);
System.out.println(s);
(2)、String->int
public static int parseInt(String s):将字符串解析为int类型。该方法时Integer类中的方法。
例:
String 是= "100";
int i = Integer.parseInt(s);
System.out.println(i);
2.字符串数据排序
例:
需求:一个字符串"91 27 46 38 50",请写程序实现最终输出结果为:“27 38 46 50 91”。
Java代码实现:
public class Test{
public static void main(String[] args) {
String s = "91 27 46 38 50";
//定义一个字符串数组,使用split(" ")将字符串s中的元素分割
String[] strArray = s.split(" ");
//定义一个int类型的数组
int[] arr = new int[strArray.length];
//将字符串数组中的元素分别赋给int类型的数组
for(int i = 0; i < strArray.length; i++) {
arr[i] = Integer.parseInt(strArray[i]);
}
//将得到的数组arr进行排序
Arrays.sort(arr);
//定义StringBuilder对象
StringBuilder sb = new StringBuilder();
//for循环遍历数组arr
for(int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
if(i != arr.length - 1) {
sb.append(" ");
}
}
//输出遍历好的数组
System.out.println(arr.toString);
}
}
3.自动装箱和自动拆箱
装箱:把基本数据类型转换为对应的包装类类型.
拆箱:把包装类类型转换为对应的基本数据类型.
例:
Integer i = 10;//自动装箱
i += 200;//i + 200自动拆箱; i = i + 200自动装箱
注意:在使用包装类类型的时候,如果做操作,先判断对象是否为null.
4.如何编写和使用日期工具类
(1).public long getTime():获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值.
(2).public void setTime(long time): 设置时间,给的是毫秒值.
(3).SimpleDateFormat类概述
SimpleDateFormat是一个具体的类,用于以区域设置敏感的方法格式化和解析日期.
日期和时间格式化由日期和时间模式字符串指定,在日期和时间模式字符串中,从’A’到’Z’以及从’a’到’z’引号的字母被解析为常用的模式字母.
常用的模式字母及对应关系如下:
y->年
M->月
d->日
H->时
m->分
s->秒
(4).格式化(Date->String)
public final String format(Date date):将日期格式化为日期/时间字符串.
代码实现:
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat(pattern:“yyyy年MM月dd日”);
String s = sdf.format(date);
System.out.println(s);
(5).解析(String->Date)
public Date parse(String source):从给定字符串的开始解析文本生成日期.
代码实现:
String s = “2019-12-20 HH:mm:ss”;
SimpleDateFormat sdf = new SimpleDateFormat(pattern:yyyy-MM-dd HH:mm:ss);
Date d = sdf.parse(s);
System.out.println(d);
(6).日期工具类的应用
例:需求:定义一个日期工具类(DateUtils),包含两个方法:把日期转换为指定格式的字符串;把字符串解析为指定格式的日期,然后定义一个测试类(DateTest),测试日期工具类.
代码实现:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateUtils {
//私有无参构造
private DateUtils(){}
//String -> Date
public static Date StringToDate(String time , String Pattern) throws ParseException {
SimpleDateFormat sdf1 = new SimpleDateFormat(Pattern);
Date date1 = sdf1.parse(time);
return date1;
}
//Date -> String
public static String DateToString(Date date , String Pattern){
SimpleDateFormat sdf2 = new SimpleDateFormat(Pattern);
String time = sdf2.format(date);
return time;
}
}
import java.util.Date;
import java.text.ParseException;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
//定义一个字符串
String s = "2019年12月20日 13:25:25";
//定义一个字符串模板
String pattern = "yyyy年MM月dd日 HH:mm:ss";
//创建对象用于接收方法DateUtils.StringToDate的返回值
Date d = DateUtils.StringToDate(s,pattern);
//输出解析后的时间
System.out.println(d);
//创建时间对象
Date date = new Date();
//创建字符串对象用于接收方法DateUtils.DateToString的返回值,并传入参数
String time = DateUtils.DateToString(date,"yyyy年MM月dd日 HH时mm分ss秒");
//输出格式化后的时间
System.out.println(time);
}
}
5.Calendar的使用
(1).Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法.
Calendar提供了一个类方法getItstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化(多态的形式):Calendar rightNew = Calendar.getInstance();
(2).Calendar的常用方法
public int get(int field):返回值给定日历字段的值.
代码实现:
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
public abstract void add(int field , int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段.
代码实现:
Calendar c = Calendar.getInstance();
c.add(Calendar.YEAR , amount:-3);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
public final void set(int year , int month , int date):设置当前日历的年月日.
代码实现:
Calendar c = Calendar.getInstance();
c.set(2020,12,12);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int date = c.get(Calendar.DATE);
System.out.println(year + "年" + month + "月" + date + "日");
(3).案例:2月天
代码实现:
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class FebruaryDemo02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个您要判断的年份:");
int year = sc.nextInt();
Calendar ca = Calendar.getInstance();
ca.set(year,2,1);
ca.add(Calendar.DATE,-1);
int date = ca.get(Calendar.DATE);
System.out.println(year + "年2月有" + date + "天");
}
}