String 一串字符串java中所有字符串文字都可以视为String实例
1.定义
String s = new String();
2.特点
字符串的值在创建后不能被更改
String s ="abc";s+="d";
内存中同时有"abc"和"abcd"两个对象,s改变指向,指向了"abcd"
因为不能改变,所有可以被共享
String s1 = "abc"; String s2 = "abc";
内存中只有一个"abc"对象被创建,同时被s1和s2创建
字符串的底层是靠char[]数组实现的
3.常用方法
substring(int left,int reght)对字符串进行切割 左闭右开(s.subString())
trim()清除多余的空格和回车(s.trim)
charAt(int index)获取下标index的字符 s.charAt(0);当字符为null或""是会报NullpointException空指针异常
length()获取字符串长度(s.length())
replace(String r ,String t)替换内容
endwith(String e)结尾包含 startwith(String s)开头包含
equals(Object o)将字符串与指定对象比较,当且仅当o非null且属于String对象表示与此对象相同字符序列时,返回true。
concat(String s)将指定字符串拼接到末尾
indexOf(String s)返回指定字符串第一次出现在字符串中的索引
split(String s)将String根据s切割成字符串数组
4.转换方法
与字符串数组之间进行转换char[] c = s.toCharArray(), String s = new String (c);
与字节数组 public String(byte[] b) , getBytes()将String编码转换成byte数组
String与int类型之间的部分转换 5 = "5"-"0";int i = 10;String s= i.toString;
int i = Integer.valueof("10");
5.相关类型
因为String直接进行字符拼接并不方便(字符串的值在创建后不能再改变),所以又有StringBuffer和StringBuilder
StringBuffer内部带锁,更安全,速度较StringBuilder稍慢,比String快得多
StringBuilder不带锁,最快
StringBuffer 与String之间的转换
String s= sb.toString; String s = new String(sb) StringBuffer sb = new StringBuffer(s);
StringBuilder类似
append()StringBuffer和StringBuilder的拼接方法