集册 Java 精简入门教程 字符串和运算符

字符串和运算符

欢马劈雪     最近更新时间:2020-08-21 10:54:42

494

目前为止,教程中介绍了许多 String 类型的变量,但没有进行太多解释。您在这一节中会进一步了解字符串,还会了解何时和如何使用运算符。

字符串

在 C 语言中,处理字符串需要花费很大精力,因为字符串是以 null 结尾的数组,其中包含必须处理的 8 位字符。(在字符串方面,与 C 语言最接近的 Java 代码是 char 原语数据类型,它可以包含单个 Unicode 字符,比如 a。)

在 Java 语言中,字符串是 String 类型的一级对象,包含一些可帮助您处理它们的方法。


注意: 在 C 语言中,处理字符串需要花费很大精力,因为字符串是以 null 结尾的数组,其中包含必须处理的 8 位字符。在字符串方面,与 C 语言最接近的 Java 代码是 char 原语数据类型,它可以包含单个 Unicode 字符,比如 a。.


以下是两种创建字符串的方法,我们使用创建一个名为 greeting 且值为 helloString 实例为例:

greeting = new String("hello");
String greeting = "hello";

因为 String 是一级对象,所以可使用 new 实例化它们。将一个 String 类型的变量设置为字符串字面常量具有相同的结果,因为 Java 语言会创建一个 String 对象来保存字面常量,然后将该对象分配给该实例变量。

串联字符串

可以使用 String 做许多事情,该类有许多很有帮助的方法。甚至还没有使用方法,您就已经通过串联(或组合)两个 String ,在 Person 类的 testPerson() 方法中做了一些有趣的事情:

l.info("Name: " + p.getName());

加号 (+) 在 Java 语言中是串联 String 的简单表示。(在循环内执行这种串联会影响性能,但目前已不需要担心这一点。)

串联练习

现在,可以尝试在 Person 类内串联两个 String 字符串。此刻您有一个 name 实例变量,但有一个 firstNamelastName 会让应用程序更接近真实的业务应用程序。然后,您可以在另一个对象请求 Person 的全名时串联它们。

返回到 Eclipse 项目,首先添加新实例变量(放在源代码中目前定义 name 的相同位置):

//private String name;
private String firstName;
private String lastName;

注释掉 name 定义;您不再需要它,因为已将它替换为 firstNamelastName

链式方法调用

现在,告诉 Eclipse 代码生成器生成 firstNamelastName 的 getter 和 setter(如有必要,请参考前面的您的第一个 Java 类 部分)。然后删除 setName()getName() 方法,添加一个新的 getFullName() 方法,使代码类似于:

public String getFullName() {
  return getFirstName().concat(" ").concat(getLastName());
}

此代码演示了方法调用的 链接 。链接是一种经常用于不可变对象(比如 String )的技术,在链接中,修改一个不可变对象总是返回修改后的对象(但不会更改原始对象)。然后,您可以在返回的已更改的值上进行操作。

运算符

您已看到,Java 语言使用 = 运算符将值赋给变量。正如您可能期望的,Java 语言可执行算术运算,而且它也使用运算符实现此目的。现在,我将简要介绍一下随着您技能的提升需要掌握的一些 Java 语言运算符。

Java 语言使用两种类型的运算符:

  • 一元 (unary):只需一个操作数。
  • 二元 (binary):需要两个操作数。

表 2 总结了 Java 语言的算术运算符:

表 2. Java 语言的算术运算符
展开阅读全文