《系统常用类(一)》
目录
一、字符串
-
字符串是字符的序列,它是组织字符的基本数据结构,从某种程度上来说有些类似于字符的数组。
-
在Java中,字符串被当作对象来处理。程序中需要用到的字符串可以分为两大类:
- 字符串常量(String):每次方法操作都会产生新的对象;
- 字符串变量(StringBuilder/StringBuffer):每次方法操作都是对自身的操作。
String类(字符串常量)
- 源码查看
- 引用地址比较==,内容比较equals()方法
String str1 = null;
String str2 = "";
String str3 = new String();
String str4 = new String("");
System.out.println(str2 == str3); //false
System.out.println(str3 == str4); //false
System.out.println(str3.equals(str4)); //true
- 常用构造方法
//创建空串
String()
//创建初始化值字符串
String(String original)
//char数组——>字符串
String(char value[])
String(char value[], int offset, int count)
//字节数组——>字符串
String(byte[] by)
String(byte bytes[], int offset, int length)
...
- 常用方法
int length(); //返回字符串长度
char charAt(int index); //返回指定下标字符
int indexOf(String sub); //查找指定字符串第一次出现的下标
int lastIndexOf(String sub); //查找指定字符串最后一次出现的下标
int compareTo(String oth); //比较字符串
String concat(String oth); //拼接字符串
byte[] getBytes(); //字符串转字节数组
char[] toCharArray(); //字符串转字符数组
String toLowerCase(); //字符串转小写
String toUpperCase(); //字符串转大写
boolean matches(String regex); //判断字符串是否符合某个正则
String replace(char ochar,char nchar); //替换字符串
String replaceAll(String regex,String nchar); //正则替换字符串
String[] split(String regex); //正则切割字符串
String substring(int start,int end); //截取字符串
boolean startsWith(String str); //判断字符串是否以某段开头
boolean endsWith(String str); //判断字符串是否以某段结束
boolean equals(); //内容比较
boolean equalsIgnoreCase(); //不区分大小写内容比较
String trim(); //去除左右空格
StringBuilder类
- 常用构造
StringBuilder() //构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符
StringBuilder(String str) //构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容
StringBuilder(int capacity) //构造一个不带字符,但具有指定初始容量的字符串缓冲区
...
- 常用方法
StringBuilder append(String str); //拼接字符串
StringBuilder reverse(); //转置字符串
StringBuilder insert(int offset, String str); //插入字符串
StringBuilder delete(int start, int end); //删除字符串
int length(); //返回字符串长度
String toString(); //转String类型
StringBuffer类
StringBuffer与StringBuilder几近相同,但StringBuffer是线程安全的(非并发情况下使用StringBuilder效率更高)。
二、正则表达式
[]:中括号表示一个字符
[a-zA-Z0-9_] //表示该字符必须是字母、数字、下划线
{}:大括号表示量词
{a,b} //最少a位,最多b位
{a,} //最少a位,最多不限
{,b} //最多b位,最少不限
* //等价于{0,}
+ //等价于{1,}
? //等价于{0,1}
|:表示串的"或"
(lo|glo|abo)ve //love/glove/above
^ $:定位符
^1[0-9]{2}5$ //表示必须以1开头以5结尾的四位数
[^]:否定符
[^0-9] //非数字字符
.:表示任意字符
.{6-12} //表示6-12位的任意字符
简写符号
\w //字母数字下划线,等价于[a-zA-Z0-9_]
\W //非字母数字下划线,等价于[^a-zA-Z0-9_]
\d //数字,等价于[0-9]
\D //非数字,等价于[^0-9]
转义字符
如上所示,有些字符在正则表达式里有了特殊含义,这个时候想要表示它本身,就需要转义,所有转义字符都以反斜杠(\)打头。
转义字符 | 表示含义 |
---|---|
\s | 空格 |
\t | 制表符 |
\n | 换行符 |
\r | 回车符 |
\\ | 表示 \ |
\+ | 表示 + |
\- | 表示 - |
\. | 表示 . |
… | … |
三、包装类
在Java中,万物皆对象,但基本的数据类型不是对象,要将基本类型与对象进行相互转换,就需要使用包装类(jdk1.5之后基本类型与对应包装类可自动互转)。
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
代码示例
package com.hpr.test;
public class Test {
public static void main(String[] args) {
//基本类型转字符串
int x = 100;
String xStr = String.valueOf(x);
System.out.println(xStr);
//字符串转基本类型
String yStr = "3.14";
double y = Double.parseDouble(yStr);
System.out.println(y);
}
}
总结
重点
- 字符串常用方法;
- 正则表达式;
- String、StringBuilder、StringBuffer三者区别;
- 包装类的使用及与字符串的互转。
难点
- 正则表达式;
- String、StringBuilder、StringBuffer三者区别。