字符串

来源:互联网 发布:minecraft java版 编辑:程序博客网 时间:2024/04/30 19:15
1String类 描述字符串事物。
String特殊的对象;final修饰,一丹初始化就不可被改变,不能有子类。
String str = "abc";
String str1 = new String("abc");
注: ""双引号引起来的就是一个实例(对象)

String s = new String(); == String s = "";

String s1 = "abc";// 常量池,字符数组
String S2 = new String("abc" );
String s3 = "abc"; // s1 == s3 true 因为常量池中是指向一个对象

// s1 s2 区别;
s1 内存中有一个对象
s2 内存中有两个对象

2字符串的常见操作
2.1获取
2.1.1字符串的长度 int length()
2.1.2根据位置获取位置上的某个字符 char charAt(int index)
2.1.3根据字符返回此字符串中第一次出现的索引 int indexOf(int ch)
indexOf(String str, int fromIndex) 
          返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
 注意会出现字符串越界异常,若不存在则返回-1
 lastIndexOf(int ch) 
          返回指定字符在此字符串中最后一次出现处的索引。从右向左查找但角标不变
2.2判断
2.2.1字符串是否包含某一个字串 contains(),index 也可以做返回值!=1 若只做判断contains即可,若判断且拿位置则可以使用index
2.2.2判断开始/结尾是否包含startswith(String str) endsWith(String str) 
2.2.3判断字符串是否有内容 boolean isEmpty  length() == 0 ?
2.2.4判断内容是否相同equals
2.2.5判断内容是否相同且忽略大小写
equalsIgnoreCase(String anotherString) 
          将此 String 与另一个 String 比较,不考虑大小写。
2.2.3转换
将字符数组转换成字符串 构造函数 String(char[] ch) String(char[] char ,offset,count ) 部分转成字符串
static String copyValueOf(char[] data)
static String valueOf(char[])
将字节数组转换成字符串 String(byte[])
将字符串转换成字符数组 char[] toCharArray();
将字符串转成字字节数组 byte[] getByte[]

将基本数据类型转换成字符串
String valueOf(int)
String valueOf(double) == 3+"" 而 String.valueOf(3) 比较专业

注:字符串和字节数组在转换过程中,是可以指定编码表的

2.2.4替换
replace
replaceAll 涉及到正则
注:替换都是新创建的字符串

2.2.5切割
String[] split(regex)
2.2.6获取子串
substring(begin,end)可以匹配字符串出现的第一个位置后截取代替substring;注意角标越界
2.2.6 转换,去掉两端,比较
转换:大小姐转换toOpperCase  toLowerCase
去除两端空格:trim(); (新的)
自然顺序比较 compareTo()

StringBuffer 是一个容器不同于String ,他是可以改变的,是字符串缓冲区
特点: 长度可变化
可以字节操作多个数据类型
可由toString转化成字符串
容器包含CRUD
append().append() 因为返回的是StringBuffer
insert()
delete(start, end) deleteCharAt(int index) 
// 清空字符串缓冲区:sb.delete(0,sb.length()); sb = new StringBuffer()
反转 reverse()
其他和string差不多
注:getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 
          将字符从此序列复制到目标字符数组 dst。
StringBuilder
StringBuffer 是线程同步的 相当于每次操作都判断了一次锁
StringBuilder 是线程不同步的 字节可以加锁解除不安全。开发建议使用。
拓展:效率,简化书写,安全
0 0
原创粉丝点击