欢迎使用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
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 乘法、除法与 0
- Different Ways to Add Parentheses
- mean开发之二:设置npm全局地址
- C语言链式栈和顺序栈的实现
- python 调用图像处理类库PIL 时遇到的问题
- 欢迎使用CSDN-markdown编辑器
- 把一个数的二进制表示反转后得到的数
- 数学测试5
- lsd-slam源码解读第三篇:算法解析
- 基于C/S的简单TCP网络编程
- 总结一下AJAX的写法——常规方法
- Android关于不同分辨率下图片被拉伸、压缩而失真的解决方案
- package control安装spacegray主题插件
- matlab2015a安装教程