本节书摘来自异步社区《Android游戏开发详解》一书中的第2章,第2.19节使用字符串,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.19 使用字符串
Android游戏开发详解
让我们通过使用熟悉的一个类String,来练习一下如何使用Java文档。创建一个名为FunWithStrings的新的Java项目,并且创建一个名为StringTester的、带有main方法的新的类,如程序清单2.18所示。
程序清单2.18 StringTester.java——空的版本
01 public class StringTester {
02
03 public static void main(String[] args) {
04
05 }
06
07 }
String类(它隐藏于Java库之中)允许我们在自己的代码中创建String对象。让我们使用用于初始化对象的new关键字,来初始化一个String对象。在main方法中添加如下代码。
String s = new String(“this is a string”);
字符串是如此的常用,以至于Java提供了一种特殊的方法来初始化它们。再添加如下的一行代码。
String s2 = “this is also a string”;
程序清单2.19给出了更新后的类。
程序清单2.19 StringTester.java——更新的版本
01 public class StringTester {
02
03 public static void main(String[] args) {
04 String s = new String("this is a string");
05 String s2 = "this is also a string";
06
07 }
08
09 }
像其他的Java对象一样,Strings也有状态和行为。在本书中,我们将只关注Strings的行为,其状态对于我们来说没有用。
让我们现在来使用Java文档。搜索String 类,并且向下滚动到Method Summary。你会发现,这里给出了String对象可用的方法的一个列表。如图2-24所示。
这个表中的单个条目,告诉我们每个方法的返回类型,以及方法名、所需的参数(输入)和方法概览。
String有一个方法,可以从一个指定的位置(称为索引)获取一个单个的字符(类型为char)。这个方法名为charAt(),它接受一个整数值,表示想要的字符的索引。
Java中的索引值是基于0的,这意味着,第一个字符的索引为0。让我们看一下这在代码中意味着什么。我们将调用charAt()方法,并且查看String s中的第3个字符(索引2),如程序清单2.20中第7行代码所示。
程序清单2.20 打印出一个字符串中的字符
01 public class StringTester {
02
03 public static void main(String[] args) {
04 String s = new String("this is a string");
05 String s2 = "this is also a string";
06
07 char ch = s.charAt(2);
08 System.out.println("The third character is " + ch);
09 }
10
11 }
相应的输出如下所示。
The third character is i
让我们来看看使用Java文档的另一个例子。查找Method Summary。能否找到一个方法,它返回给定的String的长度。浏览Method Summary,会找到图2-25所示的内容。
这张图告诉我们要使用length()方法所需的所有信息。我们知道,它返回一个整数来表示调用该方法的String的长度。该方法没有参数。让我们尝试得到s和s2的长度,并且判定哪一个更长。修改StringTester类,使其如程序清单2.21所示;新的代码在第10行到第19行。
程序清单2.21 StringTester.java(更新版本)
01 public class StringTester {
02
03 public static void main(String[] args) {
04 String s = new String("this is a string");
05 String s2 = "this is also a string";
06
07 char ch = s.charAt(2);
08 System.out.println("The third character is " + ch);
09
10 int sLen = s.length();
11 int s2Len = s2.length();
12
13 if (sLen > s2Len) {
14 System.out.println("s is longer than s2.");
15 } else if (sLen == s2Len) {
16 System.out.println("They have the same length.");
17 } else {
18 System.out.println("s2 is longer than s");
19 }
20
21 }
22
23 }
运行该代码,将会得到如下所示的结果。
The third character is i
s2 is longer than s
我鼓励你尝试一下Java文档中列出的其他方法。能够使用Java文档,这是一项重要的技能。和其他所有值得做的事情一样,只有通过练习才能较好地掌握。记住如下几件事情。
① 返回类型:(这决定了需要在结果中存储什么类型的变量)。
② 方法名称:(必须完全像显示的那样拼写。方法名称是区分大小写的)。
③ 输入:(必须总是提供为了让方法工作而所需的参数。这包括提供正确的参数个数和正确的类型)。
④ 一些方法要求CharSequence类型的输入。当你遇到这样的方法的时候,你可能要提供一个String。这是因为有一种有趣的特性叫作多态(polymorphism,即一个对象能够采取多种形式的能力),我们将会在下一章中详细讨论它。