java如何删除字符串中出现的一个字符?
我几天前写了这段代码
String removeAll(char c, String s) {
String to_return = "";
while(true) {
if (s.equals(""))
return to_return;
// at this point s is not ""
char c2 = s.charAt(0);
if (c2 != c)
{
to_return += c2;
}
s = s.substring(1);
}
return to_return; // won't be reached
}
print(removeAll('o',"hello"));
差不多。。从字符串中删除所有“o”。。但我自己做了,我应该只删除一个出现的字符
有人能帮我去掉一个吗
# 1 楼答案
这将删除
char
中的第一个String
循环。添加了一个boolean
,以了解char
是否已被删除removeAll('o',"oh, hello")
的输出示例:# 2 楼答案
一种有效的方法是使用StringBuilder:
或者,将字符前的子字符串与其后的子字符串连接起来:
或者使用内置的字符串方法replaceFirst():
注:
replaceFirst()
方法使用正则表达式进行匹配,因此应该确保正确引用字符,以避免正则表达式中有意义的特殊字符出现问题(例如$
)你可以用
String.valueOf(ch)
而不是"" + ch
,但我发现这更像是一口(尽管更“正确”)。如果你担心这段代码太快,我会避免使用replaceFirst()
,因为它非常慢——在后台,每次运行它都会将表达式编译成正则表达式模式你应该把你的方法命名为
removeFirst()
,而不是removeAll()
,否则下一个开发者会很困惑# 3 楼答案
您必须使用
StringBuilder
,它有deleteCharAt
方法来删除特定索引处的字符