String类表示定长、不可变的字符序列,Java语言中所有的字符串常量(如“abc”)都作为此类的实例来实现。它的特点是一旦赋值,便不能改变其指向的字符串对象,如果更改,就会指向一个新的字符串对象。
1.String类的创建
创建String对象的方法有两种:
(1)字符串常量直接初始化为String对象。
例如:
(1) 字符串常量直接初始化为String 对象。例如:
String s ="Hello world!";
(2) 创建类String 的一个对象。
1) String(): 创建一个空串。
String s =new String();
2) String(String value): 对象内容与字符串常量一致。
String s = new String("Hello");
在初始化一个字符串对象时,可以根据需要调用相应的构造方法,参数为空的构造方法是String类默认的构造方法。
【例6.1】字符串举例。
String s1="hello";
String s2="hello";
String s3=new String("hello");
String s4=new String("hello");
对于字符串常量,如果内容相同,代表同一个String对象;关键字new调用构造器,会创建一个新的对象,无论内容是否相同。
所以对于[例6.1],s1与s2指向同一个对象;s3和s4指向两个不同的对象;s1==s2为true,s3==s4为false。
2.String类的常用方法
String类的常用方法如下所示。
(1)public int length() //取字符串长度
【例6.2】写出程序的运行结果。
String s="abc";
System.out.println(s.length());
float a[]=new float[6];
System.out.println(" "+a.length);
上述程序的运行结果为:
(2)public boolean startsWith(String perfix) //判断字符串前缀
startsWith()方法判断字符串是否从一个指定的字符串开始。(www.daowen.com)
(3)public boolean endsWith(String suffix) //判断字符串后缀
endsWith()方法判断字符串是否以一个指定的字符串结尾。
(4)public int indexOf(String str) //查找字符串
(5)public int indexOf(String str,int fromIndex) //从指定位置开始查找字符串
(6)public int compareTo(String anotherString) //比较字符串大小
比较两个字符串的大小,如果源串较小,则返回一个小于0的值,如相等则返回0,否则返回一个大于0的值。
(7)public boolean equals(Object anObject) //比较字符串是否相等
equals()与“==”是两种不同的比较相等的运算,equals是比较字符串对象中的字符是否相等,而“==”运算符则比较两个对象引用是否指向同一个对象,如[例6.3]所示。
【例6.3】写出程序的运行结果。
[例6.3]的运行结果为:
(8)public boolean equalsIngnoreCase(String anotherString)
判断两个字符串是否相等,相等则返回true,不相等则返回false。equalsIgnoreCase不区分字母大小写,而equals则须区分。
(9)public String concat(String str) //连接字符串
concat方法用来连接两个字符串,这个方法会创建一个新的对象,该对象会包含原字符串,同时把str的内容跟在原字符串的后面。Concat方法和“+”运算符具有相同的功能。
也可以采用“+”运算符连接两个字符串,产生一个String对象。也允许使用一连串的“+”运算符,把多个字符串对象连接成一个字符串对象。
(10)public String substring(int start,int end) //获得当前字符串的子串
(11)public String trim() //得到一个去掉前后空格的字符串
说明:因为字符串是不能改变的对象,因此调用上述方法对字符串进行修改都会产生新的字符串对象,原来的字符串保持不变。
(12)valueOf()方法。
valueOf()方法是定义在String类内部的静态方法,利用这个方法,可以将几乎所有的Java简单数据类型转换为String类型。这个方法是String类型和其他Java简单类型之间的一座转换桥梁。除了把Java中的简单类型转换为字符串之外,valueOf方法还可以把Object类和字符数组转换为字符串,例如:
String s=String.valueOf(1.34f);
(13)toString()方法。
当Java在连接时会将数据类型转换为其字符串形式,它是通过调用字符串中定义的valueOf()的重载方法来完成的。对于简单类型,valueOf()方法返回一个字符串,该字符串包含了相应被调用值的可读值。对于对象,valueOf()方法调用toString()方法。
toString()方法是在Object中定义的,所以任何类都具有这个方法,然而toString()方法的默认实现是不够的,对于用户所创建的大多数类,通常都希望用自己提供的字符串表达式重写toString方法。toString()方法的一般形式为String toString()。
实现toString()方法,仅仅返回一个String对象,该对象包含描述类中对象的可读的字符串。通过对所创建类的toString()方法的覆盖,允许得到的字符串完全集成到Java的程序设计环境中。例如,它们可以被用于print()和println()语句,以及连接表达式中。
[例6.4]中在Person类中重写toString()方法说明了这点,当Person对象在连接表达式中使用或在调用println()方法中使用时,Person类的toString()方法被自动调用。
【例6.4】 定义一个Person类,覆盖Object的toString()方法,再定义一个测试类,输出Person的信息。
运行该程序,输出结果为:
姓名是:王冷晗,年龄是30岁
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。