一 基础概念

1. String是一个类,属于引用数据类型默认为null , JVM对String类做了一个特殊的处理,可以把String像基本数据类型一样使用使用

2. String 类的两种实例化方式

    (1)直接赋值    String str = "hello";

      (2)  通过构造方法赋值  String str = new String("hello");

    区别:直接赋值 赋值内容会自动进入到字符串常量池,只开辟一块空间

                通过构造方法赋值   不会进入到字符串常量池,开辟两块空间

    如果想要通过构造方法实例化的String进入到字符串常量池则可以手动调用intern方法

     String str2=new String("hello").intern();

    字符串内容就是String类的匿名对象

    字符串的内容是不可改变的

3. 字符串的比较

    ==是比较内存地址

    String 中的 equals()方法是比较字符串内容(Object 类中 equals() 方法比较的还是内存地址,覆写此方法使之比较内容,String类中已覆写)

4.  字符串的内容是不能改变的,改变的是String的引用,如果在程序中大量的产生了字符串拼接操作,则就会大量的产生垃圾空间

    For(int i=0;i<1000000;i++){

          Str+=hello world;

    }

    String类不适合大量的频繁的修改字符串的内容,以后可以使用StringBuffer 或者StirngBuilder类去解决字符串频繁修改的操作

 

二 常用方法

构造方法

1. public String(char value[]); 要求给定一个char数组把char数组变为字符串

2.public String(char value[],int offset,int count)根据指定长度转换字符数组为字符串

3.public String(byte bytes[]) 把byte数组变为字符串

普通方法

1 获取字符串的长度

public int length();

2 判断字符串的长度是否为空

 public boolean isEmpty();

3 给定指定索引反回指定索引的字符

给定一个字符串去掉字符串的左右空格

 public char charAt(int index)

4 把给定的字符串转换为字节数组

public byte[] getBytes(String charsetName);

5 字符串内容比较

 public boolean equals(Object anObject);

6 判断字符串是否以某个字符串开始

  public boolean startsWith(String prefix)

6 判断字符串是否以某个字符串结尾

public boolean endsWith(String suffix);

7(默认从前往后找)给定指定字符串,反回该字符串的下标位置,如果找不到该字符串反回-1

public int indexOf(String ch);

8 查找指定字符串,从后往前找反回该字符的下标,找不到返回-1

 public int lastIndexOf(String str);

9 截取字符串

 public String substring(intbeginIndex);

10 按照范围截取字符缓

public String substring(intbeginIndex, intendIndex);

11 把字符串变为字符数组

publicchar[] toCharArray();

 

拓展

 

1 字符串连接:

字符串连接,String str+=hello 没有区别

    public String concat(String str);

 

2 忽略大小写比较

    equalsIgnoreCase(String str);

 

3 字符串的分割:

    主要针对正则表达式的支持,表达语法

     publicString[] split(String regex);