首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >例如,如何区分来自hello1的hello11?

例如,如何区分来自hello1的hello11?
EN

Stack Overflow用户
提问于 2014-08-11 10:19:59
回答 6查看 106关注 0票数 1

我正在用java编程,我需要替换String中的某些关键字。

假设我的字符串是"Int hello1 \n Int hello11",我想将"hello1"替换为"a""hello11"替换为"b"

问题是当我说String.replaceAll("hello1", "a");原始字符串保持如下:Int a \n Int a1,如何防止替换hello11

我该用什么药?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-08-11 10:23:54

你可以用单词边界来处理这个问题。

您还需要将由String调用创建的replaceAll分配给另一个变量,因为String是不可变的。

在本例中,我只是通过标准输出流打印它。

代码语言:javascript
复制
String input = "Int hello1 \n Int hello11";
System.out.println(input.replaceAll("\\bhello1\\b", "a"));

输出

代码语言:javascript
复制
Int a 
 Int hello11
票数 1
EN

Stack Overflow用户

发布于 2014-08-11 10:23:54

您需要在正则表达式中使用word边界:

代码语言:javascript
复制
String repl = str.replaceAll("\\bhello1\\b", "a");
repl = str.replaceAll("\\bhello11\\b", "b");
票数 1
EN

Stack Overflow用户

发布于 2014-08-11 10:21:14

Java字符串对象是不可变的,因此您不能更改它们。

将返回的值从replaceAll()方法重新分配到该变量。

代码语言:javascript
复制
String str = "Int hello1 \n Int hello11";
String yourStr = str.replaceAll("\\bhello1\\", "a");

您甚至可以像下面这样重新分配返回的值。

代码语言:javascript
复制
str = str.replaceAll("\\bhello1\\", "a");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25240988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档