文章目录
先前的课程多是Java语言基础的介绍和学习,侧重于基础的学习。从本章开始多注重于实际编程技能和应用的学习,是在实际编程工作中使用到的技能和重点。
Java String的定义
Java String类在整个Java语言中占有不可或缺的地位。Java 没有内置的字符串类型,而是在标准 Java 类库中提供了一个 String 类来创建和操作字符串。在实际应用中对占用内容和运算性能有较大的影响,下面在不同的篇章中介绍java.long.String类的定义和使用。所占的篇幅也会比较多。
创建字符串
创建字符串最简单的方式如下:
String str = "Hello,How are you.";
或者
String str;
str = "Hello,How are you.";
注意:字符串变量必须经过初始化才能使用。
用构造函数创建字符串:
String str = new String("Hello,How are you.");
String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上。
示例
String str1 = "Hello"; // String 直接创建
String str2 = "Hello"; // String 直接创建
String str3 = s1; // 相同引用
String str4 = new String("Hello"); // String 对象创建
String str5 = new String("Hello"); // String 对象创建
上面的代码str1,str2,str3都是指向公共池中的Hello字符串,而str4和str5分别创建了不同的字符串对象,占用了不同的内容空间。
String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列。换句话说,新创建的字符串是该参数字符串的副本。例如:
String str1 = new String("Hello Java");
String str2 = new String(str1);
这里 str1 和 str2 的值是相等的。
String(char[ ]value)
分配一个新的字符串,将参数中的字符数组元素全部变为字符串。该字符数组的内容已被复制,后续对字符数组的修改不会影响新创建的字符串。例如:
char a[] = {'H','e','l','l','o'};
String sChar = new String(a);
a[1] = 's';
上述 sChar 变量的值是字符串“Hello”。 即使在创建字符串之后,对 a 数组中的第 2 个元素进行了修改,但未影响 sChar 的值。
String(char[] value,int offset,int count)
分配一个新的 String,它包含来自该字符数组参数一个子数组的字符。offset 参数是子数组第一个字符的索引,count 参数指定子数组的长度。
char a[]={'H','e','l','l','o'};
String sChar=new String(a,1,4);
a[1]='s';
上述 sChar 变量的值是字符串“ello”。该构造方法使用字符数组中的部分连续元素来创建字符串对象。offset 参数指定起始索引值,count 指定截取元素的个数。创建字符串对象后,即使在后面修改了 a 数组中第 2 个元素的值,对 sChar 的值也没有任何影响。
String 类有 11 种构造方法,这些方法提供不同的参数来初始化字符串,比如提供一个字符数组参数:
示例
public class StringDemo{
public static void main(String args[]){
char[] helloArray = { 'h', 'e', 'l', 'l', 'o'};
String helloString = new String(helloArray);
System.out.println( helloString );
}
}
执行结果:
hello