正则表达式、可变字符串、Date工具包的使用

常用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值