Java学习笔记(三)

今天来探讨Java字符串,那么让我们开始吧。

Java字符串

Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然地叫做 String 。每个用双引号括起来的字符串都是 String 类的一个实例:

String e = ""; // an empty string
String greeting = "Hello";

子串

String 类的 substring 方法可以从一个较大的字符串中提取一个子串。例如:

String greeting = "Hello";
String s = greeting.substring(0,3);

创建了一个由字符“Hel”组成的字符串。

很好理解, Substring 方法是从0开始计时,直到3为止,但不包括3。该方法有一个优点:可以很容易的计算子串的长度,字符串 s.substring(a, b) 的长度为 b-a

拼接

与绝大多数程序设计语言一样,Java允许使用 + 号连接(拼接)两个字符串。

String a = "in";
String b = "sane";
String c = a + b;

拼接成的字符串为 “insane”

注意: 单词之间没有空格, + 号按照指定的次序将两个字符串拼接起来。

还有一点比较重要: 将一个字符串和一个非字符串进行拼接时,后者被转化成字符串。

如果需要把多个字符串放在一起,用一个字符串分隔,可以使用静态 jion 方法。

String all = String.join(" / ","s","m","l","xl");
    // all is the string "s / m / l / xl"

不可变字符串

String 类没有提供用于修改字符串的方法。如果希望将 greeting 的内容修改为 “Hellp!” ,不能像C++一样直接将 greeting 的最后两个位置的字符修改为 ‘p’‘!’。那么Java怎样实现相同的效果呢? 答案是:提取、拼接。

greeting = greeting.substring(0, 3) + "p!";

这样,便得到了相同的结果。

由于不能修改Java字符串中的字符,所以在Java文档中将 String 类对象称为 不可变字符串 。如同数字3永远是3一样,字符串 “Hello” 永远包含 H、e、l、l 和 o 的代码单元序列,不能修改其中的任何一个字符。当然,可以修改字符串变量 greeting ,让它引用另外一个字符串,这就如同可以将存放3的数值变量改成存放4一样。

检测字符串是否相等

可以使用 equals 方法检测两个字符串是否相等。对于表达式:

s.equals(t)

如果字符串 s 和字符串 t 相等,则返回 true ;否则,返回 false

要想检测出两个字符串是否相等,而不区分大小写,可以使用 equalsIgnoreCase 方法:

"Hello".equalsIgnoreCase("hEllo")

注意: 一定不要使用 == 运算符检测是否相等! 这个运算符只能确定两个字符串是否在同一位置上。

空串与null串

空串 “” 是长度为 0 的字符串。下列代码可以检查一个字符串是否为空:

if(str.length() == 0)

或者

if(str.equals(""))

空串是一个Java对象,有自己的空长度(0)和内容(空)。不过,String 变量还可以存放一个特殊的值,名为 null,这表示目前没有任何对象与该变量关联。要检查一个字符串是否为 null,要使用以下条件:

if(str == null)

检查一个字符串不为 null 的原因: 如果在一个 null 值上调用方法,会出现错误。

构建字符串

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

如果需要用很多小段的字符串构建一个字符串,那么应该按照下列步骤进行。

首先,构建一个空的字符串构建器:

Stringbuilder builder = new StringBuilder();

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

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

在需要构建字符串时就调用 toString 方法,就可以得到一个 String 对象:

String completedString = builder.toString();

Java API文档

如果想查阅 API 文档,请点击 这儿 ,可以查阅到标准类库中所有类和方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值