字符串分割 split()
(1)split(String sign)
sign为分割字符串的分割符,也可以使用正则表达式
如果想要定义多个分割符,可以使用符号“|”
例如:“=|,” 表示分隔符分别为“,”、“=”
String s = new String("233.233.2.3");
String[] firstAr = s.split("\\.");
for(String a : firstAr) {
System.out.println(a);
}
输出结果:
233
233
2
3
"."需要使用转义字符
String s = new String("233 233 2 3");
String[] firstAr = s.split(" ");
for(String a : firstAr) {
System.out.println(a);
}
233
233
2
3
String s = new String("233 233@2$3");
String[] firstAr = s.split(" |@|\\$");
for(String a : firstAr) {
System.out.println(a);
}
输出结果:
233
233
2
3
一般输出有误的可以前面加一个"\"试试,一般都是转义字符的问题。
(2)split(String sign, int limit)
sign与上相同,limit表示模式匹配次数。比如设置该值为n,则结果数组的长度不会超过n。
String s = new String("233 233@2$3");
String[] firstAr = s.split(" |@|\\$",2);
for(String a : firstAr) {
System.out.println(a);
}
输出结果:
233
233@2$3
格式化字符串 format()
1.日期格式化
转换符 | 说明 | 示例 |
---|---|---|
%te | 一个月中的某一天 | 2 |
%tb | 指定语言环境的月份简称 | Feb(英文)、二月(中文) |
%tB | 指定语言环境的月份全程 | February(英文)、二月(中文) |
%tA | 指定语言环境的星期几全称 | Monday、星期一 |
%ta | 指定语言环境中星期几的简称 | Mon、星期一 |
%tc | 包括全部日期和时间信息 | 星期二 三月 25 13:37:22 CST 2008 |
%tY | 4位年份 | 2008 |
%tj | 一年中的第几天(001~366) | 085 |
%tm | 月份 | 03 |
%td | 一个月中的第几天(01~31) | 02 |
%ty | 2位年份 | 08 |
(表格来自《Java从入门到精通》)
import java.util.Date;
public class Eval {
public static void main(String[] args) {
Date date = new Date();
String year = String.format("%tY", date);
String month = String.format("%tB", date);
String day = String.format("%td", date);
String all = String.format("%tc", date);
System.out.println("年份:"+year);
System.out.println("月份:"+month);
System.out.println("日期:"+day);
System.out.println(all);
}
}
注意最前面的一句import
输出结果:
年份:2020
月份:七月
日期:22
周三 7月 22 22:15:49 CST 2020
2.时间格式化
转换符 | 说明 | 示例 |
---|---|---|
%tH | 2位数字的24时制的小时(00~23) | 14 |
%tI | 2位数字的12时制的小时(01~12) | 05 |
%tk | 2位数字的24时制的小时(0~23) | 5 |
%tl | 2位数字的12时制的小时(1~12) | 5 |
%tM | 2位数字的分钟(00-59) | 05 |
%tS | 2位数字的秒数(00-60) | 12 |
%tL | 3位数字的毫秒数(000-999) | 920 |
%tN | 9位数字的毫秒数(000000000-999999999) | 062000000 |
%tp | 指定语言环境上下午或下午标记 | 下午、pm |
%tz | 相对于 GMT RFC 82 格式的数字时区偏移量 | +0800 |
%tZ | 时区缩写形式的字符串 | CST |
%ts | 1970-01-01至现在经过的秒数 | 1595428041 |
%tQ | 1970-01-01至现在经过的毫秒数 | 1595428094252 |
(出处同上表)
import java.util.Date;
public class Eval {
public static void main(String[] args) {
Date date = new Date();
String hour = String.format("%tH", date);
String minute = String.format("%tM", date);
String second = String.format("%tS", date);
System.out.println("现在是北京时间:"+hour+"时"+minute+"分"+second+"秒");
}
}
输出结果:
现在是北京时间:22时35分48秒