常用API
正则表达式
boolean matches(String regex)
String replaceAll(String regex, String newStr)
String[] split(String regex)
只能出现 0-9 a-z A-Z _ $, 一共最多16个字符,最少6个字符
用法:输入正确身份证号,检测身份证格式是否正确
11位电话号码 ,检测电话号码格式是否正确
IP地址 xx.xxx.xxx.xxx 将字符串的ip地址拆分成数组
xxx@xx.com.cn 检测邮箱格式是否正确以及截取邮箱用户名
代码部分:
package day02;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
import org.junit.Test;
public class Zhengze {
@Test
public void test01() throws UnsupportedEncodingException {
//关键字替换
String tt="skr我是sb猪头skrskr,skr,skr";
String tt1="skr我是sb猪头skrskr,skr,skr";
String regex="(skr|sb)";//没加号
String regex00="(skr|sb)+";//有加号会把字符当成一个整体
tt =tt.replaceAll(regex, "*");
String ttt =tt1.replaceAll(regex00, "*");
System.out.println(tt);
System.out.println(ttt);
//判断邮箱名是否符合规范
String em="khdnksjadh@qq.com";
//^[a-zA-z]\w{5,17}@qq\.com
String regex1="^[a-zA-z]\\w{5,17}@qq\\.com";
boolean ce=em.matches(regex1);
System.out.println(ce);
//检测一个字符串中除去标点符号的个数
String mm="djkl .sda dsd,sda!!jha?skdk【 】、";
String regex2="[ ,\\.【】、!\\?]+";
String[] nn=mm.split(regex2);
System.out.println(Arrays.toString(nn));
String str="猪头";
byte[] zhu=str.getBytes("utf-8");//将猪头按utf-8解码
System.out.println(Arrays.toString(zhu));//输出输出
String zhu1=new String(zhu);//按默认编码将zhu这个数组编码
System.out.println(zhu1);//输出编码后的zhu1
String zhu3=new String(zhu1.getBytes(),"utf-8");//将zhu1按utf-8解码,再按utf-8解码
System.out.println(zhu3);
}
}
数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
字符串:由字符数组,Unicode编码集
1个字符=2个字节
操作系统中,文件存储都是字节单位
可变字符串
StringBuilder:线程不安全,效率高
StringBuffer :synchronized - 同步锁/并发 线程
线程安全,效率低
频繁改变字符串,就使用StringBuilder
package day01;
/**
* 将"大家好!"修改为:"大家好!我是程序员!"并输出。
* 然后将"大家好!我是程序员!"修改为:"大家好!我是优秀的程序员!"并输出
* 然后再修改为:"大家好!我是牛牛的程序员!"并输出
* 然后在修改为:"我是牛牛的程序员!"并输出
* @author Bonnie
* 使用StringBuilder完成
*/
public class Test02 {
public static void main(String[] args) {
StringBuilder mm=new StringBuilder("大家好!");
//向字符串末尾追加 append
mm=mm.append("我是程序员!");
System.out.println(mm);
//在指定位子前插入字符串 insert
mm=mm.insert(mm.indexOf("程"),"优秀的");
System.out.println(mm);
//替换指定位置 replace
mm=mm.replace(6, 8, "牛牛");
System.out.println(mm);
//删除指定位置 delete
mm=mm.delete(0, 4);
System.out.println(mm);
}
}
java.lang -> 默认包
java.util -> 工具
long - 时间 毫秒
Date - 时间 年月日、时分秒
代码部分:
package day02;
import java.util.Date;// Date工具包
public class Datet {
public static void main(String[] args) {
Date d1= new Date();//获取当前系统时间
Date d2 =new Date(8888);
//判断点前的数字是否在框内数字的之后
System.out.println(d1.after(d2));
//判断点前的数字是否在框内数字的之前
System.out.println(d1.before(d2));
//点前的时间距离1970年的时间
System.out.println(d1.getTime());
System.out.println(d1);
//将距离1970年的时间数转化成可以观看的伦敦时间
d1.setTime(d1.getTime()+24l*6*3600*1000);
Date d3=new Date(d1.getTime()+24l*6*3600*1000);//和上一条作用相同
System.out.println(d1);
System.out.println(d3);
}
}
/**
* 将当前系统时间以"yyyy-MM-dd HH:mm:ss"格式输出
* @author Bonnie
*
*/
public class Test02 {
public static void main(String[] args) {
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String mm=d.format(date);
System.out.println(mm);
}
}
java.text: 格式化的
时间格式化 DateFormat SimpleDateFormat
String format(Date date) – 时间格式化
Date -> 2019-05-12 19:53:28
Date parse(String source) – 时间字符串的解析
2019-05-12 19:53:28 -> Date