Java String类

介绍

String类是一个特殊的对象,适用于描述字符串事物的,一旦被初始化就不可以被改变。String类复写了Object类中的equals方法,该方法用于判断字符串是否相同。

特征

1、String类是final的,不可被继承;

2、String类本质是字符型数组char[ ],并且值不可改变;

3、String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc","abc"就表示一个字符串对象。而x是"abc"对象的地址,也叫做"abc"对象的引用;

4、String对象可以通过“+”串联。串联后会生成新的字符串;

5、Java运行时会维护一个String Pool(String池),JavaDoc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区;

6、创建字符串的方式很多,归纳起来有三类:

第一类,利用new关键字创建一个String对象,如:String s1 = new String("abc");

第二类,利用特性3直接创建,如:String s2 = "abc";

第三类,利用特性4串联生成新的字符串,如:String s3 = "a" + "b" + "c";

构造

1、public String()
无参构造方法,用来创建空字符串的String对象。
 1 String str1 = new String(); 
2、public String(String value)
用已知的字符串value创建一个String对象。
 1 String str2 = new String("asdf"); 2 String str3 = new String(str2); 
3、public String(char[] value)
用字符数组value创建一个String对象。

1 char[] value = {"a","b","c","d"}; 2 String str4 = new String(value);//相当于String str4 = new String("abcd");

4、public String(char chars[], int startIndex, int numChars)
用字符数组chars的startIndex开始的numChars个字符创建一个String对象。

1 char[] value = {"a","b","c","d"}; 2 String str5 = new String(value, 1, 2);//相当于String str5 = new String("bc");

5、public String(byte[] values)
用比特数组values创建一个String对象。

1 byte[] strb = new byte[]{65,66}; 2 String str6 = new String(strb);//相当于String str6 = new String("AB");

创建

JAVA中创建字符串(String)对象的方法有三种:

         /**创建字符串(String)的三种方法*/
        //1.创建一个字符串对象string,名为:str1
        String str1="string";
        //2.创建一个空的字符串,名为str2
        String str2=new String();
        //3.创建一个字符串对象string,名为:str3
        String str3=new String("string");

方法

注意:

1. 字符串 str 中字符的索引从0开始,范围为 0 到 str.length()-1

2. 使用 indexOf 进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,返回 -1

3. 使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符;就是左闭右开区间

4. “==”和equals的区别

     ==:是判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象

     equals:是比较存储在两个字符串对象中的内容是否一致

5. 字节是计算机存储信息中的基本单位,1字节等于8位,gbk编码中1个汉字字符存储需要2个字节,1个英文字符存储需要1个字节!汉字的字节值为负数,原因是因为每个字节是8位,最大值不能超过127,而汉字转为自节后超过127,如果超出会溢出,以负数的形式显示!

实例

String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:

public class StringDemo{
   public static void main(String args[]){
      char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
      String helloString = new String(helloArray);  
      System.out.println( helloString ); //runoob
   }
}


版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。