将空格替换为连字符
我想将空格字符替换为连字符中的连字符。将空格替换为连字符
String replaceText = "AT AT";
replaceText.replace(' ', '-');
但是当我这样做,我似乎无法取代字符。我尝试了replaceAll()
方法,它也不起作用。
++++++回答+++++++
对不起我的错误..深夜节目:(
感谢您的回答,我可能不能回答所有的结果,所以我将检查第一个答案
replaceText = replaceText.replace(' ', '-');
replaceText = replaceText.replace(' ', '-');
字符串被immutable,它们不能被创建后改变。所有的方法,不知怎的,作案一个字符串将返回一个新的字符串,其中包含修改。
replace
and replaceAll
方法返回带有替换结果的字符串。您是使用返回的值,还是期望replaceText
字符串发生更改?如果是后者,则不会看到更改,因为字符串是immutable。
String replaceText = "AT AT";
String replaced = replaceText.replace(' ', '-');
// replaced will be "AT-AT", but replaceText will NOT change
的替代方法返回一个字符串,所以你需要重新分配你的字符串变量即
String replaceText = "AT AT";
replaceText = replaceText.replace(' ', '-');
字符串是不可改变的。
您需要保存replace()
返回的值。 如果要替换多个事件,请使用replaceAll()
。
String replaceText = "AT AT";
replaceText = replaceText.replaceAll(" ", "-");
由于@Mark Peters指出的评论,replace(Char, Char)
是足够了(快)替换所有出现。
String replaceText = "AT AT";
replaceText = replaceText.replace(' ', '-');
如果这一事实困扰你:immutability is a Good Thing
.
字符串是不可变的吗?:P – 2011-03-10 16:27:21
@Rob,hmmmmmm ...我不知道...可能不是? – 2011-03-10 16:28:31
也许不是......但那个大胆的信息让我奇怪。 – Cristian 2011-03-10 16:33:06
字符串是不可改变的。你需要使用替换的返回值:
replaceText = replaceText.replace(' ', '-');
如果你要替换很多字符串,你需要考虑使用StringBuilder来提高性能。
String replaceText = "AT AT";
StringBuilder sb = new StringBuilder(replaceText);
sb.Replace(' ', '-');
/*You can use below method pass your String parameter and get result as String spaces replaced with hyphen*/
private static String replaceSpaceWithHypn(String str) {
if (str != null && str.trim().length() > 0) {
str = str.toLowerCase();
String patternStr = "\\s+";
String replaceStr = "-";
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher(str);
str = matcher.replaceAll(replaceStr);
patternStr = "\\s";
replaceStr = "-";
pattern = Pattern.compile(patternStr);
matcher = pattern.matcher(str);
str = matcher.replaceAll(replaceStr);
}
return str;
}
我想强调以下字符串众多的答案是不可改变的。 :) – 2011-03-10 16:24:33
@Brent:嗯,也许我需要让我的答案更突出:更大更大胆的文本! – 2011-03-10 16:26:01
需要6分钟才能查看答案。该死的我讨厌这个:( – ben 2011-03-10 16:29:18