String类
字符串是由多个字符组成的一串数据组成的。值一旦给定不能改变,一旦修改会重新创建一个新的对象。
两个创建方法:
String s = " ";
创建对象时,先在常量池检测有没有相同的值
若没有,就在堆中创建一个字符串对象,值在常量池中。
若存在,就直接让引用变量指向已有的字符串对象
String s = new String("abc");
使用指定值填充value
构造方法
public String()
public String(String str)
public String(byte[] bytes) //把byte数组转换为字符串
public String(char[] value) //把char数组转换为字符串
String s4 = "abc";
byte[] b = s4.getBytes();//把能够看懂的字符转为字节数组(编码)
byte[] b = s4.getBytes("utf-8");//把能够看懂的字符转为字节数组(编码)
System.out.println(new String(b,"utf-8"));//把看不懂的byte数组转为字符(解码)
//注:编码和解码时,两边编码表要一致,否则会乱码
判断功能
a.equals(b);//比较值的大小
a.equalsIgnoreCase(b);//不区分大小写比较
a.contains("b");//是否包含指定字符串
a.isEmpty();//判断字符串内容是否为空
a.startWith("b");//判断是否以指定字符开头
a.endsWith("b");//判断是否以指定字符结尾
获取功能
String a = "abcdefghi"
//012345678
a.length();//字符长度
a.charAt(3);//返回指定位置上的字符
a.indexOf("b");//获得指定字符首次出现的位置
a.indexOf("b",a.indexOf("b")+1);//获得指定字符第二次出现的位置
a.lastIndexOf("b");//从后向前数,获得指定字符首次出现的位置
a.substring(3);//从指定位置开始截取到结束,返回一个新的字符串
a.substring(3,7);//包含3,不包含7
转换功能
char[] c = "abc".toCharArray();//把字符串转为字符数组
String s = String.valueOf(c);//把字符数组转为字符串转
String s1 = "abcdEFG";
System.out.println(s1.toLowerCase());//转为小写字母
System.out.println(s1.toLowerCase());//转为大写字母
String s2 = s1.concat("XXXX");//把两个字符串连接起来,返回一个新的字符串
String s3 = s1+"xxxx";
String s4 = "a:b:c:def";
String a = s4.split(":");//用正则表达式将字符串分割为数组
上面结果:[a,b,c,d]
替换功能
a.replace(":","|");//用 | 替换 :
a.trim()//去掉字符串内首尾处的空格