1、要创造空的string,可以调用默认函数,将创建内部没有任何字符的String实例。例如
String s = new String() ;
而如果要创造一个具有初始值的字符串,可以使用如下构造函数
String(type chars[])
例如:
//构造函数‘abc’初始化s
char chars[] = { 'a ' , 'b' , 'c'};
String s = new String(chars) ;
2、指定字符数组的子范围作为初始化部分
String(char chars[],int startIndex, int numchars)
//startIndex为开始索引的位置,numchars为使用的字符数量
例如:
char chars[] = { 'a','b', 'c', 'd' , 'e' , 'f'};
String s = new String(chars , 2 , 3);
注意:从数组创建String对象都会复制数组的内容。在创建之后,如果修改数组的内容,String对象不会发生变化。
3、StringBuffer和StringBuilder 构造String 实例
为了获取字符串的长度,可以调用length() 方法。例如:
char chars[] = { 'a' , 'b' , 'c'};
String s = new String(chars);
System.out.println(s.length());
1、字符串字面值
前面所使用的显示创建String实例,过程比较复杂,还有更简单的方式,即使用字符串字面值
String s = 'abc';
其调用length() 方法和前面的输出结果是一样的
2、字符串连接
Java中要连接两个字符串,可以使用规则 “+”运算符,它可以连接两个或两个以上字符串,生成一个String 对象作为结果。
String age = "9" ;
String s = "he is " + age + "years old ";
System.out.println(s);
//其输出为 he is 9 years old
注意:Java中不允许为String 对象应用运算符
3、字符串和其他数据类型的连接
类型一:字符串 + 其他类型
在这种状态下,其他类型会被自动转换为相应的字符串表示形式,然后按照字符串形式相连接。
int age = 9 ;
int name = 8 ;
String s = "he is " + age + name;
System.out.println(s);
//其输出为 he is 98
类型二、其他类型 + 字符串
在这种状态下,先把前面的类型计算,然后转换为相应字符串类型并与后面的字符串相连接。
int age = 9 ;
int ages=8;
String s = ages+age + " years old ";
System.out.println(s);
//输出为 : 17 years old
类型三:有比 + 优先的优先级存在
在这种状态下,计算优先级高的,然后再按照规则相连接
int age = 9 ;
int ages=8;
String s = "he is " +(ages + age);
System.out.println(s);
//输出为 he is 17
4、字符串转换和toString()方法
toString()方法的默认实现很少能满足我们的实际需求,所以,经常重写toString()方法。例如
class Box{
double height;
double width;
double depth;
Box(double w,double h,double d){
width = w;
height = h;
depth = d;
}
public String toString() {
return "toString :" + width +" " + height + " " + depth;
}
}
public class Main {
public static void main(String[] args) {
Box x = new Box(10,12,14);
String s = "Box :" + x;
System.out.println(x);
System.out.println(s);
}
}
//可以看出,在连接或调用Box对象时,会自动调用其toString()方法