思维导图
创建对象
基本创建语句如下
1 | char[] data = {'1'}; |
在Java中String 类是不可变的,也就是固定。接下来使用的任何一种方法都只是引用其中的对象值而已,然后创建一个新的字符对象,与之前的对象没有任何关系。因为是对所有的字符串而言,包括字符常量字串在Java中都是对象,而不是一个值。
所以,在Java中,虽然str2 与 str3 的值是相等的,但是如果使用 str2 == str3 返回值是一个false.因为这是对象值而已。
但是同样,在Java系统中,为了减少内存空间的使用,默认将所有文字常量都是共享一个String对象,应该放在字符串池中,从而方便使用。
如str3 == str4 返回一个true的值。
对象操作
对一个类的认识,关键两点在于除了关注如何创建以外,还应该是如何操作其中的方法当然类似之前的内容,这个是对象的引用值,任何方法的使用都是在创建一个新的String对象。
字符串长度
求解字符串长度的方法只有一个
1 | String str = 'liudidi'; |
字符串比较
在字符串不能使用 == 或者是 使用!= 进行比较的时候,可以使用String中的常用四个方法
1 | public boolean equals(Object anObject); // 区别大小写对两个字符串进行比较 |
字符串连接
对字符串进行连接时可以用String 中自带的.concat()函数,也可以使用的+
号作为连接符进行运算。
例子
1 | String str1 = 'liudidi'; |
获取单个字符的索引值
给定一个字符,寻找这个字符第一次所在的索引值。
1 | public int indexOf(char ch); // 从左到右查找返回第一个所在的索引值 |
获取单个字符串的索引
具体函数如下
1 | public int indexOf(String str); // 从左到右查找返回第一个所在的索引值 |
提取子字符串
提取当前的字符床作为子字符串
1 | String str = 'liudidi'; |
字符串转变为数组
使用方法toCharArray
1 | String str = 'liudidi'; |
下面的方法,可以返回单个字符
1 | char ch = str.charAt(1) //返回 i |
转换字符串
创建新字符串对象放回当前字符的大/小写形式
1 | String str1 = "Java".toLowerCase(); // str1 = 'java' |
替换字符串中的字符。用右边参数的值替换右边参数的值
1 | public String replace(char OldChar, char newChar); |
清除两边空格字符
1 | public String trim(); |
字符串格式化
调用静态方法,可以将格式化字符串format中的嵌入的一个或者多个格式说明符替换成可变参数列表args中相应参数的相应文本表现形式
1 | int num1 = 1; |
类StringBuilder / 类 StringBuffer
String类是不可变的。所以在对对象进行操作时,会引用出许多的中间String对象。为了减少对象的增加,减少内存的占比。引入了SrirngBuiler 和 StringBuffer类
在多线程时String Buffer 是安全的,平时使用时StringBuilder的速度更快。
创建对象
两者在创建对象时,方式类似。因为其中的构造方法类似。
1 | public StringBuilder(); |
插入和追加操作
1 | StringBuilder strBuilder = new StringBuilder("liudidi") |
其他常用操作
1 | public int capacity(); |