ad

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_3.6.9 构建字符串

admin 94 2023-10-25

【摘要】 本书摘自《Java核心技术》一书中第3章,第6节,作者是来自美国的凯·S.霍斯特曼(Cay S.Horstmann),由林琪、苏钰涵等译。

3.6.9 构建字符串

有些时候,需要由较短的字符串构建字符串,例如,按键或来自文件中的单词。如果采 用字符串拼接的方式来达到这个目的,效率会比较低。每次拼接字符串时,都会构建一个新的 String 对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生。

阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_3.6.9 构建字符串

如果需要用许多小段的字符串来构建一个字符串,那么应该按照下列步骤进行。首先, 构建一个空的字符串构建器:

StringBuilder builder = new StringBuilder();

当每次需要添加一部分内容时,就调用 append方法。

builder.append(ch);// appends a single character

builder.append(str);// appends a string

在字符串构建完成时就调用tostring方法,将可以得到一个String对象,其中包含了构 建器中的字符序列。

String completedString = builder.tostring();

下面的API 注释包含了StringBuilder类中的重要方法。

java.lang.StringBuilder 5

● StringBuilder()

构造一个空的字符串构建器。

● int length()

返回构建器或缓冲器中的代码单元数量。

● StringBuilder append(String str) 追加一个字符串并返回 this。

● StringBuilder append(char c)

追加一个代码单元并返回 this。

● StringBuilder appendCodePoint(int cp)

追加一个码点,并将其转换为一个或两个代码单元并返回 this。

● void setCharAt(int i, char c) 将第i 个代码单元设置为c。

● StringBuilder insert(int offset, String str) 在 offset 位置插入一个字符串并返回 this。

● StringBuilder insert(int offset, char c)

在offset 位置插入一个代码单元并返回 this。

● StringBuilder delete(int startIndex, int endIndex)

删除偏移量从 startIndex 到 endIndex-1的代码单元并返回 this。

● String tostring()

返回一个与构建器或缓冲器内容相同的字符串。

3.7 输入与输出

为了增加后面示例程序的趣味性,需要程序能够接受输入,并适当地格式化程序输出。 当然,现代的程序都使用GUI 收集用户的输入,然而,编写这种界面的程序需要使用较多的 工具与技术,目前还不具备这些条件。我们的第一要务是熟悉Java程序设计语言,因此我们 要使用基本的控制台来实现输入输出。

3.7.1 读取输入

前面已经看到,将输出打印到“标准输出流”(即控制台窗口)是一件非常容易的事情, 只要调用System.out.println 即可。然而,读取“标准输入流”System.in就没有那么简单了。 要想通过控制台进行输入,首先需要构造一个与“标准输入流”System.in关联的 Scanner 对象。

Scanner in = new Scaner(System.in);

(构造器和 new操作符将在第4章中详细介绍。)

现在,就可以使用Scanner类的各种方法读取输入了。例如, nextLine方法将读取一行 输入。

System,out.print("What is your name?");

String name = in.nextLine();

在这里,使用nextLine方法是因为在输入行中有可能包含空格。要想读取一个单词(以 空白符作为分隔符),可以调用

String firstName = in.next();

要想读取一个整数,就调用 nextInt 方法。

System.out.print("How old are you?");

int age = in.nextInt();

与此类似,要想读取下一个浮点数,就调用 nextDouble方法。

在程序清单3-2的程序中,首先询问用户姓名和年龄,然后打印一条如下的消息: Hello, Cay. Next year, you'll be 57

最后,在程序的最前面添加一行代码:

import java.util.*;

Scanner类定义在 java.util包中。当使用的类不是定义在基本 java.lang 包中时, 一定要使用 import指令导入相应的包。有关包与 import指令的详细描述请参看第4章。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《Java核心技术》卷1 基础知识_更了解Java的奥妙_1.3 Java applet 与 Internet
下一篇:读懂《Java架构之完美设计 实战经典》_为更好架构做准备_2.8 架构编程思想
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×