理论教育 《Java程序设计实用教程》-String类

《Java程序设计实用教程》-String类

时间:2023-11-21 理论教育 版权反馈
【摘要】:String类表示定长、不可变的字符序列,Java语言中所有的字符串常量都作为此类的实例来实现。1) String(): 创建一个空串。这个方法是String类型和其他Java简单类型之间的一座转换桥梁。实现toString()方法,仅仅返回一个String对象,该对象包含描述类中对象的可读的字符串。

《Java程序设计实用教程》-String类

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岁

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈