字符串是有限个字符的有序集合,前面讲的char类型用于表示和存储单个字符,字符串相当于几个或多个char类型的有序集合,用于表示和存储多个有序的字符序列。字符串必须包含在一对“”(双引号)之内。例如:“I want to learn Java programming”、“我要学Java编程”、“3+5=8”、“abc”等等。
Java语言的字符串类型同前面介绍的Java基础类型不太一样,Java没有给字符串类型定义一个关键字,用于声明字符串类型,而是通过类的方式提供对字符串的操作和存储。在Java语言中,字符串类型被定义为类,类名为“String”,该类提供了多个构造方法和字符串操作方法,用于满足对字符串不同的处理要求。
String类的创建和初始化
String类可用字符串常量对其初始化。例如:
String szWelcome = “欢迎加入Java编程小组”;
String szExpression = “3+5-3”;
String szTemp = “abc”;
也可以调用其构造方法来进行,String类提供了多个构造方法对其初始化,下面列举了几个主要的构造方法:
(1) 方法名称:String()
方法说明:构造一个空串(不包含任何字符)
方法示例:String szWelcome = new String();
(2) 方法名称:String(String original)
方法说明:用original内容初始化新创建的字符串
方法示例:
String szWelcome = new String(szTemp);
(3) 方法名称:String(byte[] bytes))
方法说明:用字符数组(后面会讲解数组结构)始化新创建的字符串
方法示例:
char chTemp[] ={‘欢’,’迎’ ,’加’,’入’,’编’,’程’,’小’,’组’};
String szWelcome = new String(chTemp);
案例1:用不同方式创建和初始化String类。
在eclipse下新建项目PbaseUnit11,创建包unit,在unit包下创建Java类StringInitSample。代码如下:
/**
* @Title: StringInitSample.java
* @Package unit
* @Description: Java基础知识课程案例
* @author 编程训练营
* @date
* @version V1.0
*/
package unit;
/**
* @ClassName: StringInitSample
* @Description: 字符串(String类)案例1
* @author 编程训练营
* @date
*
*/
public class StringInitSample {
/**
* @Title: main
* @Description:Java程序入口main方法
* @param @param args 参数
*
* @return void 返回类型 @throws
*/
public static void main(String[] args) {
// 声明字符串变量,并用字符常量初始化
String szWelcome = "欢迎加入编程小组";
System.out.println(szWelcome);
// 声明字符串变量,并用已声明的字符串初始化
String szTemp = new String(szWelcome);
System.out.println(szTemp);
// 声明字符类型数组
char chTemp[] = { '欢', '迎', '加', '入', '编', '程', '小', '组' };
// 声明字符串变量,并用字符数组始化
String szTest = new String(chTemp);
System.out.println(szTest);
}
}程序结构分析
程序功能主要是演示String类声明及初始化的使用。
程序使用了String类提供的三种不同的初始化方法。第一种方法是通过字符常量赋值初始化;第二种方法是通过new运算符(后面会讲解)实例化String类,并以传入的已声明的字符串初始化;第三种方法是通过new运算符实例化String类,并以传入的字符型数组初始化。
程序执行结果如下图所示:
从上述结果可以看出,用相同的内容对String类进行不同的初始化,虽然初始化方法不同,但其内容是相同的。
创建和被初始化的String类称为String对象,也可以称为字符串对象,所有字符串操作都以String对象为基础。
在实际编程中,Java的String类是使用频率非常高的类,需要深入理解和掌握,弄清楚String提供的各种操作方法和技巧。