《Java入门经典(第7版)》—— 6.6 字符串的高级处理

6.6 字符串的高级处理

还有多种其他方式可用于查看字符串变量和修改其值。之所以有这些高级功能,是因为字符串在Java语言中是对象。通过处理字符串对象获得的知识,也适用于其他对象。

6.6.1 比较两个字符串

在程序中经常要测试两个字符串是否相等,为此可在带有两个字符串的语句之中使用equals(),如下所示:

String favorite = "chainsaw";
String guess = "pool cue";
System.out.println("Is Fin's favorite weapon a " + guess + "?");
System.out.println("Answer: " + favorite.equals(guess));```
这里使用了两个字符串变量,一个是变量favorite,用于存储Fin最喜欢的捕鲨工具——电锯;另一个变量是guess,用于存储对其最喜欢的工具的猜测,该猜测是Fin最喜欢台球杆。

第3行显示文本“Is Fin’s favorite weapon a”,后跟变量guess的值和问号。第4行显示文本“Answer:”以及下面的新内容:

favorite.equals(guess)`
语句中的这部分称为方法。方法是在Java程序中完成任务的一种方式,这里的方法要完成的任务是,比较字符串favorite和字符串guess的值是否相等。如果这两个字符串的值相等,就显示true,否则显示false。下面是该示例的输出结果:

Output ▼
Is Fin's favorite weapon a pool cue?
Answer: false```
####6.6.2 确定字符串的长度
有时确定字符串的长度很有用,为此可使用方法length()。该方法的工作原理与equals()相似,但只涉及一个字符串变量。请看下面的例子:

String cinematographer = "Ben Demaree";
int nameLength = cinematographer.length();`
该示例将整型变量nameLength的值设置为11,方法cinematographer.length()计算字符串变量cinematographter包含的字符数,并将结果赋给整型变量nameLength。

6.6.3 改变字符串的大小写

计算机很不灵活,不能识别明显相同的东西。虽然人很容易识别出文本Ian Ziering和IAN ZIERING是一回事,但大多数计算机不这么认为。例如,在本章前面介绍的equals()方法将果断地认为Ian Ziering不等于IAN ZIERING。

为了绕过这些障碍,Java提供了将字符串变量全部转换为大写的方法(toUpperCase())和全部转换为小写的方法(toLowerCase())。下面的例子演示了如何使用方法toUpper Case():

String fin = "Ian Ziering";
String change = fin.toUpperCase();```
这段代码将字符串变量change设置为字符串变量fin的大写形式,即IAN ZIERING。toLowerCase()方法的用法相同,但返回的是字符串的小写。

注意,toUpperCase()方法不改变它调用的字符串变量的大小写。在上述示例中,变量fin的值仍为Ian Ziering。

绕过这一障碍的另一种方法是调用equalsIgnoreCase()方法,它在比较两个字符串时不考虑大小写。调用该方法比较字符串“Tara Reid”和“TARA REID”时,返回的结果为true,表示它俩匹配。
####6.6.4 查找字符串
处理字符串时,另一项常见的任务是,确定在一个字符串中能否找到另一个字符串。要在字符串中查找,可使用方法indexof(),并将要查找的字符串放在括号中。如果没有找到指定的字符串,indexof()返回−1;如果找到,indexof()返回一个整数,指出该字符串的起始位置。字符串中字符位置从0开始编号,即第一个字符的位置为0。在字符串“Sharknado”中,文本“nado”的起始位置为5。

indexof()方法的一种用法是搜索电影《Sharknado》的整个剧本,找到主人公将直升飞机开入到龙卷风中投弹,并且Nova说“We’re gonna need a bigger chopper”的地方。

如果《Sharknado》的整个剧本存储在变量script中,可以使用下面的语句从中搜索上面这句话:

int position = script.indexOf("We're gonna need a bigger chopper");
如果在script字符串中找到该文本,变量position将等于该文本在script中的起始位置,否则将等于−1。

如果你打算在一个字符串中寻找另外一个字符串,但是不关心其位置,可以使用字符串的contains()方法,它将返回一个布尔值。如果找到了字符串,返回true;否则返回false。下面是一个示例:

if (script.contains("There's a shark in your pool")) {
  int stars = 4;
}

时间: 2024-08-03 11:47:38

《Java入门经典(第7版)》—— 6.6 字符串的高级处理的相关文章

《Java入门经典(第7版)》—— 导读

前言 作为一名计算机图书作者,我花费了大量的时间呆在书店的计算机图书区,在假装阅读最新一期In Touch Weekly杂志的同时,观察读者阅读图书的行为. 根据我的观察,读者拿起本书并翻到前言后,在他将书放下前往咖啡厅喝杯咖啡前,给我留下的时间大约只有13秒. 因此,这里长话短说:使用Java来进行计算机编程比想象的容易.我本不应该这样说,因为成千上万的程序员正是凭借其Java技能在软件开发.Web应用程序编程和移动app开发领域获得了高薪职位,对他们来说,最不想让老板知道的是,只要坚持不懈并

《Java入门经典(第7版)》—— 6.8 总结

6.8 总结 如果你的Credits程序的输出结果与图6.1相同,你的信心也应该增加.通过本书前6章的学习,你现在可以编写一个比较长的Java程序,而且也可以处理一些比较复杂的问题了.字符串是你在每次编程时都会用到的东西.你可以通过多种方式使用字符串来与用户交流.

《Java入门经典(第7版)》—— 6.5 将其他变量用于字符串中

6.5 将其他变量用于字符串中 虽然可以使用+运算符将两个字符串拼接起来,但更常见的是使用它将字符串和变量拼接起来.请看下面的例子: int length = 86; char rating = 'R'; System.out.println("Running time: " + length + " minutes"); System.out.println("Rated " + rating);``` 这段代码的输出如下: Running t

《Java入门经典(第7版)》—— 6.7 导演及演员名单

6.7 导演及演员名单 接下来,为了加深读者对前面介绍的字符串处理功能的理解,将编写一个Java程序,显示一部电影的导演和演员名单.你应该能够猜到该电影的名字. 返回NetBeans中的Java24项目,然后在com.java24hours包中创建一个名为Credits的Java空文件,在源代码编辑器中输入程序清单6.1中的所有文本,输入完毕之后存盘. 程序清单6.1 Credits程序 1: package com.java24hours; 2: 3: class Credits { 4: p

《Java入门经典(第7版)》—— 6.9 问与答

6.9 问与答 问:如何将字符串变量的值设置为空? 答:一对双引号之间没有任何文本就表示空字符串.下面的代码创建一个名为georgeSays的字符串变量,并将其值设置为空: String georgeSays = "";``` 问:使用 toUpperCase() 方法好像不能将字符串中的字母全部转换为大写,我哪里操作不正确? 答:调用字符串对象的toUpperCase()方法时,实际上它并未修改该字符串对象,而是创建一个字母全部大写的新字符串,请看下面的语句: String firs

《Java入门经典(第7版)》—— 6.10 测验

6.10 测验 回答下列问题,以测试对字符串理解和掌握的程度. 6.10.1 问题 1.我的朋友要执行拼接操作,需要向权威部门报告吗? a.不,仅在冬季这才是非法的. b.是的,但要等到我将故事卖给TMZ.com再说. c.不,他所做的只是在程序中将两个字符串连接起来. 2.为什么String的首字母要大写,而int等类型名的首字母不需要大写? a.String是一个完整的单词,而int不是. b.和Java中所有的对象一样,String的首字母必须大写. c.Oracle的质量控制做得很糟糕.

《Java入门经典(第7版)》—— 6.11 练习

6.11 练习 通过下列练习来复习本章介绍的主题. 编写一个名为Favorite的小型Java程序,将本章中"比较两个字符串"一节的代码放在main()块语句中.测试该程序,确保其输出就像正文中描述的那样,Fin最喜欢的捕鲨工具不是台球杆.测试完毕后,将变量guess的初始值从pool cue改为chainsaw,再看看结果如何.修改程序Credits,将导演和全部演员的名字都用大写字母显示. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始

《Android应用开发入门经典(第3版)》——第1.1节建立开发环境

1.1 建立开发环境 Android应用开发入门经典(第3版) 要进行Android开发,首先需要创建一个可工作的开发环境.Android开发使用的是Java开发语言,用于支持Android开发的重要工具都是内置于Eclipse集成开发环境(IDE)中的,当然IntelliJ和基于IntelliJ的Android Studio也是不错的工具.本书使用的工具是Eclipse.要安装Eclipse和支持Android的Eclipse插件(Android Developer Tools),需要下载一个

《Android应用开发入门经典(第3版)》——第6.2节使用输入控件

6.2 使用输入控件 Android应用开发入门经典(第3版) 在很多应用中,需要向用户收集一些基本信息.在一个布局中最基础的数据输入域是EditText.读者在第 1 章的示例应用中已经使用过了EditText.在设计布局时可以使用TextView作为标签,以清楚地阐明意图或增加指示.使用Button可以启动一个动作. 6.2.1 使用TextView和EditView视图 一个TextView会显示一段用户无法改变的文本.EditText视图用于用户输入.与其他控件一样,可以改变TextVi