Java字符串
一.String常用方法
-
创建String对象
1
2
3String s1 = "banana";
String s2 = new String();
String s3 = new String("banana"); -
常用方法
-
补充说明
1
2
3
4
5
6
7
8
9
10
11
12
13//substring方法的参数可以理解为指针移动的次数
//下面结果截取了"github"
“ba-nana.github.io”.substring(8,14);
//从指定位置处开始用indexOf查找
//下面从"github"的't'前开始查找第一个'i'
“ba-nana.github.io”.indexOf('i',10)
//字符串与byte数组互相转换
//1字节=8位,1个中文字符=3字节,转换为字节后保存在字节数组中
String str = new String("banana好帅");
byte[] arrs = str.getBytes();
String str1 = new String(arrs);
二.“=”与equals方法
-
“=”比较的是地址,equals比较的是内容
1
2
3
4
5
6
7
8String str1 = "banana";
String str2 = "banana";
String str3 = new String("banana");
str1==str2
//上一行结果为true
str1==str3
//上一行结果为false -
解释
-
“栈”:存放类的引用
-
“常量池”:存放字符串常量
-
“堆”:存放用new创建的字符串对象
1
2
3
4
5
6
7
8
9
10
11String str1 = "banana";
//此时栈中会生成str1引用,并指向常量池中的"banana"
String str2 = "banana";
//此时栈中会生成str2引用,由于常量池中已经有相同字符串,直接指向该字符串
String str3 = new String("banana");
//此时栈中会生成str3引用,堆中创建对象,str3指向堆中对象
String str4 = new String("banana");
//此时栈中会生成str4引用,堆中依旧会创建新对象,str4指向堆中新建的对象
-
三.StringBuilder
-
String与StringBuilder的区别
- String具有不可变性,而StringBuilder不具备
- 频繁操作字符串时可使用StringBuilder
-
StringBuilder和StringBuffer
- 两者很相似
- StringBuffer线程安全,而StringBuilder没有,因此性能较好
-
StringBuilder常用方法
方法 说明 StringBuilder append(参数) 追加内容到当前StringBuilder对象末尾 StringBuilder insert(位置,参数) 将内容插入到指定位置 String toString() 将对象转换为String对象 int length() 获取字符串长度 delete(int start, int end) 删除指定位置内容
以上内容简单总结了Java字符串常用知识点,要多回顾这些基础内容,温故而知新。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 515code-实验室!
评论