1.字符串相关
String:
使用String str1 = “abc”;的创建方式。第一次用到一个字符串字面值时,会在“字符串常量池”中创建字符串实例。再次使用相同的字面值时,会优先从“字符串常量池”获取已经存在的字符串实例。
String str2 = “abc”。str1和str2获取的是同一个实例,所以str1==str2为true.
字符串连接一次必定会创建一个新的String变量,效率低。
常用方法:
1、charAt(int index)
2、toUpperCase()/toLowerCase()
3、length()
4、compareTo(String anotherString)
5、compareToIgnoreCase(String str): 按字符编码表顺序比较
6、startsWith(String str): 以str开头,返回boolean
7、endsWith():
8、equals(Object obj):
9、equalsIgnoreCase(String str):
10、indexOf(String s):
11、lastIndexOf(String s):
12、indexOf(String s, int fromIndex): 从指定位置开始向后找
13、replace(char oldChar, char newChar);
14、substring(int beginIndex): 从指定下标开始截取后面字符串(包含)
15、substring(int beginIndex, int endIndex): 截取指定范围字符串
16、trim():去除两端空白字符。
17、getBytes(): 将字符串转为默认编码的byte数组并返回byte[]
18、getbytes(编码): 将unicode(默认)转为指定编码格式的字节数组
19、toCharArray(): 字符串转为char[]数组
20、String.valueOf(各种数据):将任何数据转为字符串
21、matches(regex): 判断当前字符串能否与正则表达式匹配
22、replaceAll(regex, 子串):将所有找到的匹配子串,替换为新的子串 23、replaceFirst(regex, 子串):替换第一个找到的匹配子串
24、split(regex): 用匹配的子串,拆分字符串。
可变的字符序列:(两者有兼容的API)
StringBuilder:单线程情况下使用这个更高效率
StringBuffer:多线程下使用这个,安全(多了线程安全保护)
1、append(内容): 末尾追加字符,高效的字符串连接
2、delete(int start, int end): 删除[start, end),通常都是左闭右开区间 3、deleteCharAt(int index): 删除单个字符
4、insert(int index, 子串):在index位置,插入一个子串。
5、replace(int start, int end, String s):将[start, end)替换为指定字符串s.
6、reverse(): 翻转字符串
7、setCharAt(int index, char ch): 将index位置替换为字符ch。
8、toString(): 转为String类型
2. 正则表达式
java.util.regex.Pattern
java.util.regex.Matcher
创建实例:
Pattern p = Pattern.compile(“正则表达式”);
//表示一个正则表达式实例
Matcher m = p.mathcer(待匹配字符串);
//包装正则表达式和待匹配的字符串
Matcher方法:
find();寻找下一个匹配的子串,返回boolean值,表示是否找到匹配子串。
find(int form):从指定位置向后寻找
group() 获得刚刚找到的子串
start():获得刚刚子串的起始位置
end() 获得刚刚子串的结束位置
正则表达式 匹配的字符
------------- --------------------
a a
z z
abc abc
[abc] a, b, c
[a-z] a, z, k, r, q
[a-z_A-Z0-9] a, z, A, Z, 0, 5, 9, _
[^a-zA-Z] 排除英文字母, 0, _, &, *, #
[\u4e00-\u9fa5]
\w 单词字符, [a-zA-Z_0-9]
\W 排除单词字符
\s 空白字符
\S 排除空白字符
\d 数字[0-9]
\D 排除数字 [^0-9]
. 任意字符
[abc]? ? 0个或1个
a,b,c,,
[abc]+ + 1到多个
a, c, aa, bbb, cccc, abcabcabcabcabc
[abc]* * 0到多个
,,a, c, aa, bbb, cccc, abcabcabcabcabc
[abc]{3} aaa, bbb, ccc, abc, cba, aab, cca, bbc
[abc]{2,4} ab, abc, abcc
[abc]{2,} ab, bc, abcabcabcabcaabcabcabc
| 匹配两侧任意一个表达式即可
3. 数字运算相关
3.1 Number是数据包装类的抽象父类
Byte、Short、Integer、Long、Float、Double
3.2 自动装箱,自动拆箱
代码的语法简化
自动装箱:
Integer a = 56;
编译为:Integer a = Integer.valueOf(56);
自动拆箱:
int i = a;
编译为:int I = a.intValue();
a = a + I;
编译为:a = Integer.valueOf(a.intValue() + 1);
自动拆箱当心null值的情况,会抛空指针错误。
注意:Integer底层有一个实例缓存区,缓存-128到127的包装对象
Integer a = Integer.valueOf(128);
Integer b = Integer.valueOf(128);
System.out.println(a == b);//false
Integer c = Integer.valueOf(127);
Integer d = Integer.valueOf(127);
System.out.println(c == d);//true
3.3 大数字
java.math.BigDecimal:做精确的浮点数运算
java.math.BigInteger:做超出长×××范围的整数运算。
创建实例:
BigDecimal bd = BigDecimal.valueOf(3.14);
方法:
add(BigDecimal bd)
subtract(BigDecimal bd)
multiply(BigDecimal bd)
divide(BigDecimal bd)
通常divide()方法需要同时指定scale,即舍入方式。如若不然,当除不尽的时候,会抛出算术异常。通常使用:ROUND_HALF_UP。四舍五入
数字格式工具:
java.text.DecimalFormat
将数字转为格式字符串
数字格式的字符串,转为数字类型
创建实例:
DecimalFormat f = new DecimalFormat(格式字符串);
格式字符串:$###,###,###.000
方法:
format(数字):将数字格式化为格式字符串
parse(格式化字符串):将格式化后的字符串还原为数字
4. 日期日历相关
4.1 java.util.Date
表示一个时间点
内部包含一个长×××毫秒值
创建实例:
Date d = new Date();
Date d = new Date(365L*24*60*60*1000);指定一个毫秒值时间点
方法:
getTime(Long l):获取内部毫秒值
setTime();
4.2 java.text.SimpleDateFormat
日期格式化工具
创建实例:
SimpleDateFormat df = new SimpleDateFormat(格式化字符串);
格式化字符串举例:
yyyy-MM-dd HH:mm:ss
yy/MM/dd
yyyy年MM月dd日
方法:
format(Date d) 将实例转为日期格式字符串
parse(日期格式化字符串):将该字符串解析为Date实例
4.3 java.util.Calendar
日历的抽象父类
表示一个时间点
提供日期运算方法
创建实例:
Calendar c = Calendar.getInstance();
Calendar cc = new GregorianCalendar();
方法:
get(字段):获得指定字段的值,Calendar.YEAR等
set(字段,值):自改指定字段的值。
set(int year, int month, int date, int hourOfDay, int minute, int second):
add(字段,值):在指定字段上增加一个值c.add(Calendar.YEAR,1);
compareTo(Calendar cc):与另一个日期时间比较,大返回正数。
getActualMaximum(字段):获得指定字段的最大值。
setFirstDayOfWeek(): 设置一周的第一天
getFirstDayOfWeek():获得一周的第一天
getTime():获得表示相同时间的Date类型实例
setTime(Date date):将时间设置为指定Date实例所表示的时间
getTimeInMillis():
setTimeInMillis(long millis)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。