三、String类
1.获取字符串的方式
(1) String str1 = "hello";
这种获取字符串的方式,在串池中完成字符串对象
创建,有-不再创建
(2) String str2 = new String("world");
这种获取字符串的方式,先在堆空间中创建一个字符串对象,再查看字符串串池中是否存在该对象,存在-无需创 建,不存在-再次创建
字符串:由一个或是多个字符组成,用双引号引起来,底层为 字符数组进行存储(char[] value),具有下标,默 认从0开始,依次为1、2、3、.....
2.常见的方法:
String str = "Hello";
// 根据下标获取对应字符
// 指定合理的下标范围,否则:java.lang.StringIndexOutOfBoundsException
char c = str.charAt(2);
System.out.println(c);//e
System.out.println(str.length());//5
// 遍历字符串
for(int i=0;i<str.length();i++){
System.out.println(str.charAt(i));
}//h e l l o
System.out.println(str.indexOf("elle"));//0
// 获取字符在当前字符串出现的第一个字符下标,没有,返回-1
System.out.println(str.contains("ell"));//1
//判断指定字符串是否在当前字符串中存在
System.out.println(str.toLowerCase()); // 大写- >小写
System.out.println(str.toUpperCase()); // 小写-》大写
System.out.println(str.startsWith("he"));// 判断是否以xx开头
System.out.println(str.endsWith("o"));// 判断是否以xx结尾
String str2 = " he llo";
System.out.println(str2);
System.out.println(str2.trim()); // 去除前后空格
String str1 = new String("Hello");
String str2 = new String("hello");
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));// 判断字符串内容
System.out.println(str1.equalsIgnoreCase(str2));// 判断字符串内容,忽略大小写
String str = "hello-world-java";
String[] strs = str.split("-");
for(int i=0;i<strs.length;i++){
System.out.println(strs[i]);
}
//hello world java
String str3 = "he89weHfyfs9gguFYFYFY";
// 统计以上字符串中大写字母的个数,并打印输出
int count = 0;
for(int i=0;i<str3.length();i++){
char c = str3.charAt(i);
if(c >='A' && c<='Z'){
count++;
}
}
System.out.println(count);//7
3.不可变性:String字符串是常量,创建之后不可改变;字符串字面值存储在串池中,可以共享
4.可变长的字串:
(1)StringBuffer:可变长字符串,JDK1.0,线程安全,运行效率慢。
(2)StringBuilder:可变长字符串,JDK5.0,线程不安全,运行效率快
解释: StringBuffer
上的主要操作是 append
和 insert
方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append
方法始终将这些字符添加到缓冲区的末端;而 insert
方法则在指定的点添加字符。
例如,如果 z
引用一个当前内容为 "start
" 的字符串缓冲区对象,则此方法调用 z.append("le")
会使字符串缓冲区包含 "startle
",而 z.insert(4, "le")
将更改字符串缓冲区,使之包含 "starlet
"。通常,如果 sb 引用 StringBuilder
的一个实例,则 sb.append(x)
和 sb.insert(sb.length(), x)
具有相同的效果。