概述
java.lang包下,不须引用
常用构造方法
//1、String s = new String("value");
public String(String original);
//2、char[] ch = {'v','a','l','u','e'};String s = new String(ch);
public String(char[] value);
//3、char[] ch = {'v','a','l','u','e'};String s = new String(ch,2,2);
public String(char[] value,int index,int count);//index开始脚标,count长度
//4、直接等于某字符串
String str = "value";
String构造方法与赋值区别
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
String s4 = new String("hello");
//true,hello字符串常量存放于方法区常量池,故s1、s2指向同一地址
System.out.println(s1 == s2);
//false
System.out.println(s1 == s3);
//false,new String("hello")每次执行都会在堆内存开辟新的空间存放hello字符串,故s3与s4指向不同的地址
System.out.println(s4 == s3);
常用成员方法:
判断类:
boolean equals(Object obj)//与指定对象比较
boolean equalsIgnoreCase(String s)//忽略大小写判断相等
boolean starsWith(String str)//是否以str开头
boolean endsWith(String str)//是否以str结尾
获取类:
int length()//字符串长度
char charAt(int index)//指定索引处的字符
int indexOf(String str)//str在该字符串第一次出现的索引值
String substring(int start)//从start位置开始到最后截取的字符串
String substring(int start,int end)//从start开始到end结束截取的字符串
转换功能:
char[] toCharArray()//字符串转换字符数组
String toLowerCase()//转换为小写
String toUpperCase()//转换为大写
其他:
String trim()//删去空格(只删除头尾两端的空格,中间的不处理)
boolean matches(String regex)//在字符串中匹配regex,有则true,无则false
String[] split(String str)//以str为分隔符分隔字符串
拓展:StringBuffer与StringBuilder
概述
StringBuffer与StringBuilder都是为了更好地拼接字符串而产生的字符串缓冲区类,两者功能大致相同,区别在于StringBuffer线程安全,但增加了开销
为什么引入StringBuilder与StringBuffer
String str = "hello"+"world";
以上述字符串拼接为例,该过程共涉及到3个字符串常量,因此要在方法区常量池中开辟3个内存空间,而该过程完结后,hello和world就用不到了,但并不会被销毁,因此成为占内存的垃圾。
StringBuilder
常用构造方法:
public StringBuilder();//构建一个空的字符串构建器,初始容量16
public StringBuilder(String str);//构建一个初始化内容为str的字符串构建器
常用成员方法:
public int capacity();//返回当前容量,初始化为16
public int length();//长度
public StringBuilder append(任意类型变量);//添加数据,可以是引用变量,也可基本类型
public StringBuilder reverse();//反转顺序
与String转换
StringBuilder—>String
StringBuilder sb = new StringBuilder();
sb.toString();
String—>StringBuilder
String str = "hello";
StringBuilder sb = new StringBuilder(str);
正则表达式简单使用
[1-9] 匹配范围中的一个
{1,5} 前面相邻规则重复次数,最少1遍,最多5次
* 匹配前面的子表达式0次或多次
+ 匹配前面的子表达式1次或多次
? 匹配前面的子表达式0次或1次
举例:手机号校验
- 手机号码必须11位数字
- 第一位必须是1,第二位必须是3,5,6,7,8中的一个,后面随便0到9
则该正则表达式写为 “1[35678][0-9]{9}”