java24:Java API正则功能;StringBuilder;Date

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 直接给他
		
	}
}


本文出自 “浪漫的偷笑” 博客,转载请与作者联系!

你可能感兴趣的:(java,字符串,import,表达式,public)