- String类的性质:
(1)String类是由final修饰,不能有子类。
(2)String类的底层是由char数组实现,一但确定不可修改,如果改变字符串的值,则相当于重新创建了一个字符串对象
(3)String的常量池:在我们使用字符串的时候,系统会先去字符串常量池里查找该常量是否存在,如果存在就重用该常量。如果不存在则新建一个字符串常量
(4)String字面量优化,当多个字符串常量进行计算时,会优化成一个字符串。
String str4 = "abc" + "def";
String str5 = "abcdef";
System.out.println(str4==str5);
- String类常用API
(1) char charAt(int index):返回 char指定索引处的值(注意索引下标从零开始)
String str = “abcdefghijklmn”;
System.out.println(“str:” +str);
char c = str.charAt(5);
System.out.println(“c:”+c);//结果为:f
(2)String concat(String str) :将指定字符串连接到此字符串的结尾
String a = “张三”;
String b = “爱学习”;
String c = a.concat(b); //a=a+b
System.out.println( c );// 张三爱学习
(3)boolean startsWith(String prefix) :测试此字符串是否以指定的前缀开头。
String str = “abcdefc”;
System.out.println(“str:” +str);
boolean b =str.startsWith(“a”);//abc ak不是
System.out.println(“abc是abcdefc开始的字符吗:” +b);
(4)boolean endsWith(String suffix) :测试此字符串是否以指定的后缀结尾。
String str = “abcdefc”;
System.out.println(“str:” +str);
boolean b =str.endsWith(“fc”);//abc ak不是
System.out.println(“fc是abcdefc结尾的字符吗:” +b);
(5)boolean equals(Object anObject) – 比较的是内容:将此字符串与指定对象进行比较。
String str = “abcdefc”;
boolean b =str.equals(“aBcdefc”);
System.out.println(b);//false
(6)boolean equalsIgnoreCase(String anotherString) :将此 String与其他 String比较,忽略大小写
String str = “abcdefc”;
boolean=str.equalsIgnoreCase(“aBcdefc”);
System.out.println(b);
(7)String toUpperCase() :将字符串中所有的字母转成大写
String str = “abcdefc”;
System.out.println(“str:” +str);
str =str.toUpperCase();
System.out.println(“转换成大写:” +str);
(8)String toLowerCase():将字符串中所有的字母转成小写:
String str = “abcAFdfefc”;
System.out.println(“str:” +str);
str =str.toLowerCase();
System.out.println(“转换成小写:” +str);
(9)byte[] getBytes()
:使用平台的默认字符集将此 String编码为字节序列,将结果存储到新的字节数组中。
String a = “abcdefg”;
byte b[] = new byte[a.length()];
b = a.getBytes();
// \t空格 \n换行
for(byte b1 :b) {
System.out.print(b1+"\t");
}
(10)int indexOf(String str)
:返回指定子字符串第一次出现的字符串内的索引。
String str = “abcdefghijklmn”;
System.out.println(“str:” +str);
int c = str.indexOf(“f”);
System.out.println(“f在str第”+c+“位” );
(11)int indexOf(String str, int fromIndex) :返回指定子串的第一次出现的字符串中的索引,从指定的索引开始。
String str = “abcdefghijklmn”;
System.out.println(“str:” +str);
int c = str.indexOf(“f”,6);//4
System.out.println(“f在str第”+c+“位” );
(12)int length():用于返回字符串的长度,就是字符的个数
String s = new String();
System.out.println(“s.length():”+s.length());
System.out.println(“s:”+s);
(13)int lastIndexOf(String str) :返回指定子字符串最后一次出现的字符串中的索引。
String str = “abcdefc”;
System.out.println(“str:” +str);
int c = str.lastIndexOf(“c”);
System.out.println(“str中c最后一次出现的位置:” +c);
(14)int lastIndexOf(String str, int endIndex) :返回指定子字符串的最后一次出现的字符串中的索引,从指定索引开始向后搜索