一、String类的基本特点
1、String类的两种实例化方式
String类是一个类,所以使用时候就要依靠对象,而String的对象有两种实例化方式
(1)、直接赋值:String str = "Hello World";
(2)、使用构造方法完成:public String(new String)
String str = new String(“Hello World”);
思考:既然String类提供两种实例化方法,那么这两种实例化方法有什么区别?
。直接赋值:只会开辟一块堆内存空间,并且声明的对象可以自动保存在对象池中,以供相同内容的字符串使用
。构造方法实例化:会开辟两块堆内存空间,并且有一块将成为垃圾,此类模式产生的实例化对象不会自动入池,但是可以通过intern()方法手工入池
2、String类的常用方法
一、字符与字符串
No. | 方法名称 | 类型 | 描述 |
1 | public String(char[] value) | 构造 | 将全部字符数组变为字符串 |
2 | public String(char[] value,int offset,int count) | 构造 | 将部分字符数组变为字符串 |
3 | public char cahrAt(int index) | 普通 | 返回指定索引位置上的字符,索引从0开始 |
4 | public char[] toCharArray() | 普通 | 将字符串变为字符数组 |
2、字节与字符串
NO | 方法名称 | 类型 | 描述 |
1 | public String(byte[] bytes) | 构造 | 将全部字节数组变为字符串 |
2 | public String(byte[] bytes,int offset,int length) | 构造 | 将部分字节数组变为字符串 |
3 | public byte[] getBytes() | 普通 | 将字符串转换为字节数组 |
4 | public byte[] getBytes(String charsetName) throws UnsupportedEncodingException | 普通 | 字符串编码转换 |
3、字符串比较
NO | 方法名称 | 类型 | 描述 |
1 | public boolean equals(String str) | 普通 | 区分大小写的相等比较 |
2 | public boolean equalsIgnoreCase(String anotherString) | 普通 | 不区分大小写的相等比较 |
3 | public int compareTo(String anotherString ) | 普通 | 比较字符串的大小 |
在compareTo上会返回的数据类型为int型,而对于int型有如下三种的返回
。大于:>0
。小于:<0
。等于:=0
compareTo对于大小的比较就是字母编码的比较
4、字符串的查找
NO | 方法名称 | 类型 | 描述 |
1 | public boolean contains(String s) | 普通 | 判断该字符串是否在总字符串中存在,此操作JDK1.5之后才提供 |
2 | public int indexOf(String str) | 普通 | 从头查找指定的子字符串位置,如果不存在返回-1 |
3 | public int indexOf(String str,int fronIndex) | 普通 | 从指定的位置查找子字符串的位置,不存在返回-1 |
4 | public int lastIndexOf(String str) | 普通 | 从尾向前查找子字符串的位置,不存在返回-1 |
5 | public boolean startsWith(String prefix) | 普通 | 判断是否以指定的字符开头 |
6 | public boolean endsWith(String suffix) | 普通 | 判断是否以指定的字符串结尾 |
5、字符串截取
NO | 方法名称 | 类型 | 描述 |
1 | public String substring(int beginIndex) | 普通 | 从指定位置截取到结尾 |
2 | public String substring(int beginIndex,int endIndex) | 普通 | 截取指定索引范围内的子字符串 |
6、字符串的替换
NO | 方法名称 | 类型 | 描述 |
1 | public String replaceAll(String regex,String replacement) | 普通 | 替换全部 |
2 | public String replaceFirst(String regex,String replacement) | 普通 | 替换首个 |
7、字符串的拆分
NO | 方法名称 | 类型 | 描述 |
1 | public String[] sqlit(String regex) | 普通 | 全部拆分 |
2 | public String[] sqlit (String regex,int limit) | 普通 | 拆分为有限个数 |
8、其他操作方法
NO | 方法名称 | 类型 | 描述 |
1 | public String concat(String str) | 普通 | 字符串连接,一般使用+处理 |
2 | public String intern() | 普通 | 将内容保存到对象池之中 |
3 | public boolean isEmpty() | 普通 | 判断是否为空字符串,但是不是null |
4 | public int length() | 普通 | 取得字符串长度 |
5 | public String toLowerCase() | 普通 | 全部转小写 |
6 | public String toUooerCase() | 普通 | 转大写 |
7 | public String trim() | 普通 | 去掉左右空格,但是中间保留 |