当前位置: 首页 > news >正文

《Android游戏开发详解》一2.19 使用字符串

本节书摘来异步社区《Android游戏开发详解》一书中的第2章,第2.19节,译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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所示。


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


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

相关文章:

  • PHP AJAX JSONP实现跨域请求使用实例
  • 《Windows Server 2012 Hyper-V虚拟化管理实践》一导读
  • js判断访问终端
  • 《iOS 6核心开发手册(第4版)》——2.18节小结
  • JavaScript_判断浏览器种类IE、FF、Opera、Safari、chrome及版本
  • HeartBeat+DRBD+NFS 高可用
  • 九大绝招让你在老机器上加速运行 Ubuntu Linux
  • XP本地用户配置文件转为域用户配置文件
  • 《Swift入门经典(第2版)》——2.2 Swift中的变量
  • 【性格心理学】为什么我总是难以拒绝别人?
  • JS-制作留言提交系统(支持ctrl+回车)
  • 赛门铁克ssl证书   仲裁证书
  • js 选择控件 picker
  • day5时间复杂度
  • 【转】减少缺陷漏测的系统方法体系思考(10年经验的反思)
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • canvas绘制圆角头像
  • gitlab-ci配置详解(一)
  • mysql 数据库四种事务隔离级别
  • nginx 配置多 域名 + 多 https
  • Nodejs和JavaWeb协助开发
  • SQLServer之创建显式事务
  • vue-loader 源码解析系列之 selector
  • XForms - 更强大的Form
  • 百度地图API标注+时间轴组件
  • 测试开发系类之接口自动化测试
  • 基于遗传算法的优化问题求解
  • 你真的知道 == 和 equals 的区别吗?
  • 删除表内多余的重复数据
  • 使用 QuickBI 搭建酷炫可视化分析
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​你们这样子,耽误我的工作进度怎么办?
  • # C++之functional库用法整理
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #162 (Div. 2)
  • #define,static,const,三种常量的区别
  • #QT(智能家居界面-界面切换)
  • #vue3 实现前端下载excel文件模板功能
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)计算机毕业设计ssm电影分享网站
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (顺序)容器的好伴侣 --- 容器适配器
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Framework 服务实现监控可观测性最佳实践
  • .net 获取url的方法
  • .net/c# memcached 获取所有缓存键(keys)
  • .NET技术成长路线架构图
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @ConfigurationProperties注解对数据的自动封装
  • @TableId注解详细介绍 mybaits 实体类主键注解