08.String类

版权声明:原创文章,转载请声明原处 https://blog.csdn.net/qq_41723615/article/details/86220798

学习String类中的方法是不用去全部记忆,灵活多用自然能熟记

方法名称,方法作用,参数的类型及个数,返回值类型

public String (char[] value)                                构造            将字符数组变为String 对象
public String (char[] value,int offset,int count)            构造            将部分字符数组变String
public char charAt(int index)                                普通            返回指定索引对应的字符信息
public char[] toCharArray()                                    普通            将字符串以字符数组的形式返回


1.字节byte的方法使用

字节和字符串
字节一般主要用于数据的传输或者编码转换。
public String(byte[] bytes)                                  构造                将全部字节数组变为字符串
public String(byte[] bytes,int offset,int length)          构造              将部分字节变为字符串
public byte[] getBytes()                                  普通                将字符串变为字节数组
public byte[] getbytes(String charseName)                 普通                进行编码转换
throws UnsupportedEncodingException           


2字符串查找

public boolean contains(String s)                         普通    判断指定内容是否存在
public int IndexOf(String str)                             普通    由前向后查找指定字符串的位置,如果查找到了则返回(第一个字母的)位置索引,如果找不到返回-1.                                                                 
public int indexOf (String str,int fromIndex)             普通    由指定位置从前向后查找指定字符串的位置,找不到返回-1.
public int  lastIndexOf(String str)                         普通    由后向前查找指定字符串的位置,找不到返回-1
public int lastIndexOf(String str,int fromIndex)         普通    从指定位置由后向前查找字符串的位置,找不到返回-1.
public boolean startsWith(String prefix)                 普通    判断是否以指定的字符串开头
public boolean startsWith(String prefix,int toffset)     普通    从指定位置开始判断是否以指定的字符串开头
public boolean endsWith(String suffix)                     普通    判断是否以指定的字符串结尾


3.字符串的比较


public boolean equals(String an()bject)                       普通    进行相等判断,区分大小写
public boolean equalsIgnoreCase(String anotherString)       普通    进行相等判断,不区分大小写
public int compareTo(String anotherString)                   普通    判断两个字符串的大小(按照字符编码比较),此方法的返回值有如下三种:
                                                                 1.=0:表示要比较的两个字符串内容相等;
                                                                 2.>0:表示大于的结果
                                                                 3.<0:表示小于的结果

4.字符串的替换


public  String replaceAll(String regex,String replacement)               普通    用新的内容替换掉全部旧的内容
public String replaceFirst(String regex,String replacement)               普通    替换首个满足条件的内容


5.字符串的截取


public Sring substring(int beginIndex)                    普通    从指定索引截取到结尾
public Sring substring(int beginIndex,int endIndex)        普通    截取部分子字符串的数据
//不能使用负数进行截取


6.字符串的拆分


public String[] split(String regex)                       普通    按照指定的字符串进行全部拆分
public String[] split(String regex,int limit)           普通    按照指定的字符串进行部分拆分,最后的长度就是由limit决定的(如果能拆分的结果有很多,数组的长度由limit决定),即前面拆,后面不拆。



7.其他方法


public String concat(String str)    普通    字符串连接与“+”类似
public String toLowerCase()            普通    转小写
public String toUpperCase()            普通    转大写
public String trim()                普通    去掉字符串中左右两表的空格,中间空格保留
public int length()                    普通    取得字符串长度
public String intern()                普通    数据入池
public boolean isEmpty()            普通  判断是否是空字符串,(不是null,而是“”。)

范例:观察字符串是匿名对象的验证。

//String常量为匿名对象
public class TestString2{
    public static void main(String args[]){
          String input=null;     //假设这个内容由用户输入
          //如果用户输入的内容是hello,认为满足一个条件
          if("hello".equals(input)){    //equals()处理了null
               System.out.println("Hello World!!!");
          }
    }
}

直接赋值(String str="字符串";):只会开辟一块堆内存空间,并且会自动保存在对象池之中以供下次使用
构造方法(String str=new String("字符串")):会开辟两块堆内存空间,其中有一块空间将成为垃圾,并且不会
不会主动入池,但是用户可以使用intern()方法手工入池。
字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的变更实现的;

//String 的手工入池
public class TestString3{
    public  static void main(String args[]){
        //使用构造方法定义了新的内存空间,而后入池
         String stra=new String("hello").intern();
         String strb="hello";
         System.out.println(stra==strb);
    }
}

字符串一旦定义则不可改变

 

猜你喜欢

转载自blog.csdn.net/qq_41723615/article/details/86220798