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

相关文章
|
6月前
|
Android开发
Android Stadio Build 窗口字符串乱码问题
在使用Android Studio过程中,如果遇到Build窗口字符串乱码问题,可以通过编辑`studio.vmoptions`文件添加`-Dfile.encoding=UTF-8`配置并重启Android Studio来解决。
211 1
Android Stadio Build 窗口字符串乱码问题
|
Java PHP Android开发
【Android面试】字符串拆分及字符串组合
将字符串拆分成数组和实现字符串组合\n不能使用语言的基本分割组合函数(如 Java 的 String.split, php 的 explode 和 implode) 1)字符串拆分成字符串数组,如"ab&&2"通过"&&“做分割符,分割得到字符串数组[“ab”, “2”] 2)实现字符串组合,如[“ab”, “2”]通过”&&“分隔符,组成字符串"ab&&2”
256 0
|
Java Android开发 Kotlin
Android 字符串替换,去除空格等操作
今天在写代码的时候,需要对String进行一些操作,例如变小写,去除所有空格 于是熟练的使用String的replaceAll,却发现没这个方法。 后面才发现Kotlin使用的是自己的String,有自己的方法,用String的replace(" ","")方法也可以替换里面所有的空格。 既然用到了,就寻思总结一下,这儿主要Kotlin的String方法,和Java的其实大差不差。
|
Android开发
Android TextView.setText() 实现字符串(String)+数值(Integer)作为参数
Android TextView.setText() 实现字符串(String)+数值(Integer)作为参数
|
Android开发
Android 踩坑记录,用.split()方法分割字符串返回null
Android 踩坑记录,用.split()方法分割字符串返回null
|
Android开发
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
368 1
一个activity显示另一个activity,Android studio将一个项目作为module导入另一个项目,字符串截取的几种基本方法
|
XML 存储 Java
安卓 topic-字符串资源 string-resource
http://developer.android.youdaxue.com/guide/topics/resources/string-resource.html 字符串资源 字符串资源为您的应用提供具有可选文本样式和格式设置的文本字符串。 共有三种类型的资源可为您的应用提供字符串: • String提供单个字符串的 XML 资源。 • String Array提供字符串数组的 XML 资源。 • Quantity Strings (Plurals) 带有用于多元化的不同字符串的 XML 资源。
173 0
|
开发工具 Android开发
Android:解决“按钮 Button设置文字String 含字母时 字母默认自动转为大写字符串” 问题
Android:解决“按钮 Button设置文字String 含字母时 字母默认自动转为大写字符串” 问题
578 0
|
Java Android开发 图形学
Android修行手册之Kotlin-【变量和常量】、【基础类型】、【字符串】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
250 0
|
Android开发 C++
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )
1112 0
【Android 逆向】IDA 工具使用 ( IDA 32 位 / 64 位 版本 | 汇编代码视图 IDA View-A | 字符串窗口 Strings window )

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    Android历史版本与APK文件结构
  • 3
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 8
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 9
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 10
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 1
    Cellebrite UFED 4PC 7.71 (Windows) - Android 和 iOS 移动设备取证软件
    24
  • 2
    【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    33
  • 3
    Android历史版本与APK文件结构
    121
  • 4
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    29
  • 5
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    23
  • 6
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
    57
  • 7
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    37
  • 8
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
    73
  • 9
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
    118
  • 10
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
    29