String类
Posted xiaozhu1017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了String类相关的知识,希望对你有一定的参考价值。
1、String类
(1)程序中所有的双引号字符串,都是String类的对象,(就算没有new,也照样是);
(2)字符串的特点:1》字符串的内容永不可变;
2》字符串是可以共享使用的;
3》字符串效果上相当于是char[]字符数组,但底层原理是byte[]字节数组;
(3)创建字符串的方式:构造方法:1》public String();创建一个空白字符串,不含任何内容;
2》public String(char[] array);根据字符数组的内容,来创建对应的字符串;
3》public String(byte[] array);根据字节数组的内容,来创建对应的字符串;
直接创建:例:String str=”Hello”;
(4)字符串常量池(在堆中):程序中,直接写上双引号的字符串,在字符串常量池中,new的不在池中;例:String str1=“abc”; “abc”会在堆中开辟一个空间,存放abc的字节数组,字符串常量池存放了该数组的地址值,str1存放池中该数组的地址值,String str2=”abc”;会在字符串常量池中找是否有”abc”,若有,则将该地址值赋给str2,str1==str2,答案是true;char[] charArray={‘a’,’b’,’c’}; String str3=new String(charArray);在堆中开辟空间存放char数组,将char数组转换成字节数组,将字节数组的地址赋给字符串对象str3,str1==str3,答案是false;
(5)对于基本类型来说,==是进行数值的比较,对于引用类型来说,==是进行地址值的比较;
(6)常用方法:1》 public boolean equals(Object object);参数是任何对象,只有参数是一个字符串且内容相同才会返回true;例:str1.equals(str2);
注意事项:1>任何对象都能用Object进行接收;
2>equals方法具有对称性,也就是a.equals(b);和b.equals(a);效果一样;
3>如果比较双方一个常量一个变量,推荐把常量字符串写在前面;
2》public boolean equalsIgnoreCase(String str);忽略大小写,进行内容比较;
3》public int length();获取字符串含有的字符个数,拿到字符串的长度;
4》public String concat(String str);将当前字符串和参数字符串拼接成为新的字符串作为返回值;
5》public char charAt(int index);获取指定索引位置的单个字符(索引从0开始);
6》public int indexOf(String str);查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1;
7》字符串的截取方法:1> public String subString(int index);截取从参数位置一直到字符串末尾,返回新的字符串;
2> public String subString(int begin,int end);截取从begin开始,一直到end结束,中间的字符串,包括左边,不包括右边;
8》字符串的转换方法:1> public char[] toCharArray();将当前字符串拆分成为字符数组作为返回值;
2>public byte[] getBytes();获取当前字符串底层的字节数组;
3> public String replace(CharSequence oldString, CharSequence newString); CharSequence也相当于是一个String类型,将所有出现的老字符串替换成新的字符串,返回替换之后的字符串;
9》字符串分割方法:public String[] split(String regex);按照参数的规则,将字符串切分成若干部分;(参数其实是正则表达式,如果按照英文.切分时,要写”\.”)
以上是关于String类的主要内容,如果未能解决你的问题,请参考以下文章