欢迎使用CSDN-markdown编辑器

来源:互联网 发布:对号入座的网络词 编辑:程序博客网 时间:2024/05/01 21:32

Java基础-常用API_String

2016.6.12-start

常用API


1,String:字符串[笔记补全]

char[]+算法

字面量:String对象一旦创建。内容不可改变

String str = “abc”;

java中为String 字符串的字面量(“abc”)在堆中是一个对象

字符串字面量之间的运算(“abc”+“def”)两个字面量之间的运算

java的编译器优化为一个对象

String str = “abc”+“def”//存在一个对象

String str1 = “abc”;

String str2 = str +“def”;//存在三个对象

String s = “abc”;

String a=s;//

String ss = “abc”; //在堆内存空间中是一个对象

String s1 = new String(“abc”);//new就会在堆内存中开辟一个空间(对象)

2,String类中常用的算法

//使用字符数组char[] ch1={'a','b','c'};char[] ch2={'d','e','f'};char[] ch3=new char[ch1.length+ch2.length];System.arraycopy(ch1,0,ch3,0,ch1.length);System.arraycopy(ch2,0,ch3,ch1.length,ch2.length);System.out.println(ch3);//使用String类的方法String str1 = "abc";String str2 = "def";String str3 = str1.contact(str2);System.out.println(str3);

String类中的常用方法

equals();比较两个字符串中的字符(区分大小写)

equalsIgnoreCase();不区分大小写比较

trim();去掉前后空格

toUpperCase();转换大写

toLowerCase();转换小写

index(‘@‘)获取字符@首次出现的位置的索引,注:字符串中字符的索引从0开始

lastIndexOf(‘a’)

substring(0,3);获取0-2位置的子串[0,3)包括前不包后--不包括结尾的数

Demo代码

//演示常用方法String str1 = "abc"String str2 = "Abc";str1.equals(str2);//正则String email = “abcdefg”;email.maches("aaa@aaa.com");

3,正则表达式

  • 基本的正则表达式
  • 看懂正则
  • 常用的正则搜索

正则:描述字符匹配的规则

//[0123456789]一位数字//正则当中一对儿中括号表示一位str.matches("[0123456789]");//结果true/false//六位数字[0123456789]{6}//大括号表示数量//六位数字[0-9]{6}\d   转义字符数字\d{6}   六位数字"123".matches("\\d{3}")\\djava字符串中\\代表\//{3,6}三到六位 {3,}大于等于三位//字母[a-zA-Z]{3}//\w单词字符:数字,字母,下划线"a1b_cZ".matches("\\w{3,}")//固定字符//'.'表示任意一位字符"aaa@aaa".matches("...@...")"*@ ".matches(".@.")//@前后有任意一位字符//@前后有任意位数字符通配符:'*'0位或多位'+'1位或多位'?'0位或1"aaa@aaa".matches(".*@.*")//二代身份证18位 XString idCard = "";// \d{17}(\d|x)String reg="\\d{17}(\\d|x)"idCard.matches(reg);//邮箱//正则中'.'--'\.'// 正则 \w+(\.\w)*@\w+(\.\w+)+String email="";email="{@#aaa@aaa.com&*&^";//若不写开头结尾则此email也匹配开头结尾:^$reg ="^\\w+(\\.\\w)*@\\w+(\\.\\w+)+$";email.matches(reg);^(\d+,\d+)$

需求:使用正则验证用户输入的坐标格式是否正确

        //String reg ="^\\(\\d+,\\d+\\)$";        String reg ="^\\((([1-9]\\d*)|0),(([1-9]\\d*)|0)\\)$";        String a = "(10,02)";        String b = "(";        String regb = "^\\($";        System.out.println(a.matches(reg));        System.out.println(b.matches(regb));
        /*        IP:192.168.1.32        手机号:+86 138 999 99999        86 130 000 00000        130 000 00000        日期:2016-07-02        */

String字符串类中支持正则的方法:

matches(“reg”)

split(“reg”)

replaceAll(“reg”)

StringBuilder/StringBuffer

  • 频繁的对String的内容进行改变时使用
  • 二者内部的方法完全一致,只有线程是否安全不一样StringBuffer多了synchronized加锁

  • StringBuilder(线程不安全)效率高可由,多个线程同时进行操作,比较常用

  • StringBuffer(线程安全)效率低安全性高,多线程操作时需要等待
StringBuilder bui;der = new StringBuilder();//底层是个是字符数组,在字符数组基础上加算法,追加append的时候底层会有字符数组的扩容操作builder.append("abc");//常用builder.append("def");builder.toString()builder.delete(0,3);//[0,3)删除的不包括3位置,0-2位置被删除builder.replace(0,1,"*");builder.indexOf("*");builder.reverse();//内容倒置

Date类:

java.util.Date //是java.sql.Date的父类

java.sql.Date

SimpleDateFormat

Java时间的起点:1970-1-1 00:00:00:000

历法:年 月 日 小时 365 366

import java.util.Date;//mainDate date = new Date();System.out.println(date.getTime());System.out.println(date.toString());//是java.util.Date的子类java.sql.Date date1 = new java.sql.Date(1000);//需要输入一个正整数,为毫秒数
//演示java.sql.Date与java.util.Date的转化SimpleDateFormat bartDateFormat =   new SimpleDateFormat("yyyy-MM-dd");  String dateStringToParse = "2007-7-12";  try{         java.util.Date date = bartDateFormat.parse(dateStringToParse);         java.sql.Date sqlDate = new java.sql.Date(date.getTime());       System.out.println(sqlDate.getTime());  }  catch (Exception ex) {       System.out.println(ex.getMessage());  }

[不全笔记代码]

//字符串与java.util.Date之间的转换//演示SimpleDateFormat//String->java.util.Date->java.sql.DateString str = "2016-7-12";SimpleDateFormat sdf = new SimpleDateFomat("yyyy-mm-dd");//格式或写为"yyyy/mm/dd"sdf.parse(str);Date date = sdf.parse(date);java.sql.Date date1 = new java.sql.Date(date.getTime());//生日:  1990-09-09//周总结会议时间:  需要精确到时分秒,2016-07-18 04时//登录时间:  需要精确到秒,2016-7-12 12:12:12java.sql.Date birth= new java.sql.Date(3434343434);//java.sql.Date,--》转化为特殊格式的字符串//java.sql.Date->java.util.Date(利用SimpleDateFormat)->String        //java.sql.Date--->特殊格式的字符串    Date birth1 = birth;        String format = "yyyy-MM-dd";        format = "yyyy-MM-dd HH";        format = "yyyy-MM-dd HH:mm:ss";        SimpleDateFormat sdf1        = new SimpleDateFormat(format);        String birthStr        = sdf1.format(birth1);        System.out.println(birthStr);
Calendar c =Calendar.getInstance();c.set(Calendar.YEAR,2015);//设置年//获取年int year = c.get(Calendar.YEAR);//1代表year,常量int year = c.get(1);//由Calendar类型转换成Date类型    Calendar c        = Calendar.getInstance();        //设置年        c.set(Calendar.YEAR, 2015);        //获取年        int year        = c.get(Calendar.YEAR);             System.out.println(year);
2016.6.12-end
0 0
原创粉丝点击