String类总结
String 是一个字符串;
在java API文档中这么定义的String类
public final class String extends Object 可以看到String 是被fina修饰的,表示String 一旦被初始化时不能够被改变的。字符串是一个常量。
String 的初始化
String s1="abc";
String s2=new String("abc");
s1和s2的区别?
s1在内存中有一个对象
s2在内村中有两个对象
字符串复写了Object的equals方法,判断的是字符串的内容是否相同,而不是判断的两个字符串的内存地址值
例:String str1="java1";
String str2=new String("java1");
String str3="java1";
System.out.println(str1.equals(str2));打印结果为true;
System.out.println(str1==str2);打印结果为false;表示str1和str2并不相等,不是同一个对象。
System.out.println(str1==str3);打印结果为true;
总结:在java虚拟机在操作字符串时,如果内存中已经存在相同的字符串,就不再创建相同的对象,节约资源,把字符串的引用指向相同对象即可。
字符串在内存中存在于常量池中。比较字符串内容是否相同用equals方法。判断字符串是否为同一个对象,用“==” 字符串常见操作
int length();获取字符串长度 char charAt(int index);获取指定位置的字符
int indexOf(char ch);获取指定字符在字符中第一次出现的索引
int indexOf(char ch,indexFrom from);从指定开始获取ch在字符串中的位置。
int indexOf(String str);返回字符串的字串出现的位置。
int indexOf(String str,indexOf from);从指定位置获取str字串位置。
int LastIndexOf(int ch);返回指定字符在此字符串中最后一次出现处的索引
String subString(int beginIndex);从指定位置开始,返回字符串子字符串
String subString(int beginIndex,int endIndex);返回一个子字符串,从begin到end
String replace(char a,char b);将字符串中a替换成b;
String replace(String str1,String str2);替换字符串
String split(String str);切割字符串
boolean isEmpty();判断字符串是否为空,当且仅当length()为0时返回true,是1.6才有的。
boolean endsWith(String suffix);测试此字符串是否以指定的后缀结束。
boolean startsWith(String suffix);测试此字符串是否以指定的前缀开始。
boolean contains(String str) 判断str是否为此字符串的字串。
boolean equals(String str) 判断字符串内容是否相同
booleanequalsIgnoreCase(String str)判断字符串内容是否相同,忽略大小写
StringBuffer类
java API 文档是这么定义的,
public final class StringBufferextendsObject
StringBuffer是字符串缓冲区,是一个容器,
特点:
1,而且长度是可变化的
2,可以直接操作多种数据类型
3,最终转换成字符串
主要方法:
1,存储
查看API文档可以发现append()和insert方法大面积重载,
StringBuffer append(数据);将制定数据添加到容器末尾
StringBuffer insert(参数列表),向StringBuffer容器中插入元素。
StringBuffer insert(int index,数据);将制定数据插入到容器指定位置。
2,删除
StringBuffer delete(int start,int end);删除缓冲区中的数据,包含start,不包含end
StringBuffer delete(int index)删除指定位置的字符
3,修改
StringBuffer replace(int start, int end, String str);替换从start到end为strvoid setCharAt(int index,char ch);替换指定位置字符为ch;
StringBuffer reverse();反转字符串。
4,获取
用法和String一样。char charAt();
int indexOf();
lastIndexOf();
String substring(int start,int end)
StringBuilder类:在JDK1.5版本之后出现
StringBilder类提供一个与StringBuffer兼容的 API,但不保证同步
浙公网安备 33010602011771号