我想要做的是在字符串中替换另一个字符。更具体地说,我需要的是如下。
我有这段代码:char userChar = 'X'
我有String name = "Annette"
我想替换#34中的第一个n
; Annette"与userChar
。因此,使用.replace()
方法不是一种选择,因为它会替换所有n
。我能想到的一件事是使用substring
方法并删除除第一个" n"之外的所有文本。然后将这两个子串连接在一起,然后使用StringBuilder
和insert
方法插入' X'在n
的地方。然而,这似乎有点疯狂。我想知道是否有人有其他想法?
答案 0 :(得分:4)
您可以使用String#replaceFirst(target,replacement)
。
但要小心,因为该方法使用正则表达式语法,因此您无法轻松替换+
*
和其他metacharacters等字符。要解决此问题,您可以使用为您添加转义的方法,如
Pattern.quote
target
{li>和MatcherMatcher.quoteReplacement
代表replacement
。
答案 1 :(得分:2)
只需使用replaceFirst
。
name = name.replaceFirst("n", userChar+"");
答案 2 :(得分:1)
此链接可以提供帮助:Replace a character at a specific index in a string?
Peter Ivanov给出了这个答案。
总而言之,请尝试new
,但要使用其他方法。
StringBuilder
我希望这适合你!