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原创文章,未经本站允许不得转载。