Java String replace()方法

培训教学 潘老师 8个月前 (09-07) 211 ℃ (0) 扫码查看

String.replace() API 用于搜索一个字面子字符串,并将每个出现的子字符串替换为指定的替换字符串。搜索子字符串的起始位置从字符串的开头开始,即索引0。

需要注意的是,类似的方法 String.replaceAll() 使用正则表达式搜索和替换所有子字符串。

1.String.replace() API

replace() 方法有两个重载版本:

public String replace(char oldChar, char newChar);
public String replace(CharSequence target, CharSequence replacement);

第一个方法接受 char 类型的参数。它在字符串中搜索指定的 oldChar,并将每个出现的 oldChar 替换为 newChar。

第二个方法接受 String 类型的参数。它在字符串中搜索指定的目标子字符串,并将每个出现的子字符串替换为指定的替换字符串。

2.使用 String.replace() 替换字符

以下Java程序将所有出现的小写字母 ‘o’ 替换为大写字母 ‘O’。

String message = "Hello world !!";
Assertions.assertEquals("HellO wOrld !!", message.replace('o', 'O'));

3.使用 String.replace() 替换子字符串

以下Java程序将所有出现的子字符串 “Hello” 替换为新的字符串 “Hi”。

String message = "Hello world !!";
Assertions.assertEquals("Hi world !!", message.replace("Hello", "Hi"));

4.不支持正则表达式

不允许将正则表达式作为方法参数。如果我们使用正则表达式模式,它将被视为普通字符串。

在下面的程序中,如果支持正则表达式,正则表达式模式 [H] 会匹配字符 H。但是 replace() 不支持正则表达式,因此找不到匹配项。

String message = "Hello world !!";
Assertions.assertEquals("Hello world !!", message.replace("[H]", "h"));

 5.>null不允许作为方法的两个参数

这会引发 NullPointerException(空指针异常)。所以,在使用 String.replace() 方法时,请确保参数不为 null

Assertions.assertThrows(NullPointerException.class, () -> {
  message.replace(null, "O");
});
Assertions.assertThrows(NullPointerException.class, () -> {
  message.replace("o", null);
});

 


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/teach/8873.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】