Java 正则功能
java.util.regex.Pattern 中
java String 支持 正则
mathch(正则表达式)
将一个字符串与正则表达式进行匹配,如果匹配成功就返回true 否则返回false
package day24; import java.util.Scanner; import org.apache.commons.lang.StringUtils; public class Demo01 { public static void main(String[] args) throws Exception{ Scanner in =new Scanner(System.in); String name = in.nextLine(); boolean pass = name.matches("^\\w{8,10}$"); System.out.print(pass); } }
package day24; public class Demo02 { public static void main(String[] args) throws Exception{ String str = "2016-01-13,192.168.0.100,admin,1q@W3E"; String[] data = str.split(",");//按照指定字符串转换为数组 System.out.println(Arrays.toString(data)); String s = str.replaceAll(",", "|");//替换所有匹配的字符串 System.out.println(s); char[] chs = s.toCharArray();//字符组转为字符数组 System.out.println(Arrays.toString(chs)); String ss = new String(chs,0,10);//将字符数组转为字符串可以加范围 System.out.println(ss); ss = new String(chs); System.out.println(ss); } }
String 不可变得字符串
StringBuilder 可变字符串
这个类所产生的对象默认会有16个字符的长度
String{char[]+算法(不改变内容,经常返回新字符串)}
StringBuilder{char[] + 算法(改变了char[]的内容,当容量不足时候,进行扩容操作)}
String 和 StringBuilder 可以相互转换
toString可以将StringBuilder转为String
package day01; public class Demo04 { public static void main(String[] args) throws Exception{ //StringBuilder 的API 方法是对其内部的char[]内容进行增删改查 StringBuilder sb =new StringBuilder(); sb.append("浪").append("浪漫").append("浪漫的").append("浪漫的偷") .append("浪漫的偷笑").delete(0, 1).insert(0, "lmdtx"); System.out.println(sb); } }
java的字符串连接的过程是利用StringBuilder 实现的
大量字符串计算计算利用StringBuilder完成。
package day24; public class Demo05 { public static void main(String[] args){ System.out.println(test2(500000)); System.out.println(test1(500000)); } public static long test1(int n){ long start = System.currentTimeMillis(); String s =""; for(int i = 1; i<n;i++){ s+="A"; } long end = System.currentTimeMillis(); return end-start; } public static long test2(int n){ long start = System.currentTimeMillis(); StringBuilder sb = new StringBuilder(); for(int i = 0;i<n;i++){ sb.append("A"); } String s = sb.toString(); long end = System.currentTimeMillis(); return end-start; } }
StringBuffer 开始就有 是线程安全的同步处理的性能稍慢。 多线程使用 这个
StringBuilder java1.5 是非线程安全的,并发处理的性能稍快。 单线程使用这个
java 中代表字符串的有char[] String StringBuilder
char[] 只是字符数据,没有算法,可以自己实现,麻烦
String 是不可变字符串,是最常用的字符串,java字符数据大多使用String输出
StringBuilder 是可变字符串,在字符串的内容计算, 采用StringBuilder实现
java 中的时间
时间计算的远离:是毫秒数的+- 与历法规则有关
是一个long类型的整数,是GMT19700101到现在累计的毫秒数
java.util.Date 封装了公元历法算法
Date{long + 公元历法 算法} 有缺点:2000年问题;时区和国家问题
不适合时间计算
使用Calendar替代
Date API 方法
getYear(); 有2000年问题,返回2位数年份
getMonth();
getDate();
getDay();
getTime(); 返回的是long毫秒数
setTime(long); 修改时间毫秒数
package day24; import java.util.Date; import java.text.SimpleDateFormat; public class Demo06 { public static void main(String[] args){ Date date = new Date();//默认是当前的时间 int year =date.getYear()+1900; int month = date.getMonth()+1; int d = date.getDate(); int day = date.getDay(); int hours = date.getHours(); int minutes = date.getMinutes(); int seconds = date.getSeconds(); System.out.println(year +"-"+month+"-"+d +" "+hours +":"+minutes+":"+seconds); SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd E HH:mm:ss"); // yyyy 2016 // yy 16 // MM 01 // M 1 // dd 13 // d 6 // E 星期三 // a a- 下午 // H 24小时制 // h 12小时制 // m 份 // s 秒 // String str = fmt.format(date); System.out.println(str); System.out.println(fmt.format(0));//long 直接给他 } }
本文出自 “浪漫的偷笑” 博客,转载请与作者联系!