且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Android游戏开发详解》——第2章,第2.19节使用字符串

更新时间:2022-06-07 03:09:26

本节书摘来自异步社区《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所示。


《Android游戏开发详解》——第2章,第2.19节使用字符串

这个表中的单个条目,告诉我们每个方法的返回类型,以及方法名、所需的参数(输入)和方法概览。

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所示的内容。


《Android游戏开发详解》——第2章,第2.19节使用字符串

这张图告诉我们要使用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,即一个对象能够采取多种形式的能力),我们将会在下一章中详细讨论它。