本人觉得字符串这章属于比较重要的章节,故单拎出来进行复习。
定义
Java程序中所有的字符串文字(例如"abc" )都可以被看作是实现此类的实例请问为什么不叫对象?原则上实例是堆中实实在在的数据,对象是类的实例,类是对象的类型。具体参考
王华:Java类、对象和实例的理解zhuanlan.zhihu.com如何使用
通过构造方法
// 无参构造
String str = new String();
// 通过字符数组构造
char chars[] = {'a', 'b', 'c'};
String str2 = new String(chars);
// 通过字节数组构造
byte bytes[] = { 97, 98, 99 };
String str3 = new String(bytes);
通过直接创建
String str = "abd"
两种创建不同点:
String str="abc"
只在字符串常量池里创建一个对象。(如果字符串常量池里有"abc",则一个都不创建直接返回地址值给str
)String str = new String("abc")
在堆内存和字符串常量池各创建一个对象。(如果字符串常量池里有"abc",则只在堆内存创建对象并返回地址值给str
)
常用方法(方法的使用可以通过点来实现!!!)
判断
1. public boolean equals (Object anObject) :将此字符串与指定对象进行比较。
2. public boolean equalsIgnoreCase (String anotherString) :将此字符串与指定对象进行比较,忽略大小写。
获取
1. public int length () :返回此字符串的长度。
2. public String concat (String str) :将指定的字符串连接到该字符串的末尾。
3. public char charAt (int index) :返回指定索引处的 char值。
4. public int indexOf (String str) :返回指定子字符串第一次出现在该字符串内的索引。
4. public String substring (int beginIndex) :返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
5. public String substring (int beginIndex, int endIndex) :返回一个子字符串,从beginIndex到endIndex截取字符串。含beginIndex,不含endIndex。
转换
1. public char[] toCharArray () :将此字符串转换为新的字符数组。
2. public byte[] getBytes () :使用平台的默认字符集将该 String编码转换为新的字节数组。
3. public String replace (CharSequence target, CharSequence replacement) :将与target匹配的字符串使用replacement字符串替换。
切割
1. public String[] split(String regex) :将此字符串按照给定的regex(规则)拆分为字符串数组。
字符串练习题: