将空格替换为连字符

时间:2011-03-10 16:19:50

标签: java android string

我正在尝试将空格字符替换为字符串中的连字符。

String replaceText = "AT AT";
replaceText.replace(' ', '-');

但是当我这样做时,我似乎无法取代角色。我尝试了replaceAll()方法,它也不起作用。

++++++回答+++++++

抱歉,我的错误......深夜编程的结果:(

感谢答案我可能无法回答所有问题,所以我会检查第一个答案

replaceText = replaceText.replace(' ', '-');

7 个答案:

答案 0 :(得分:31)

replaceText = replaceText.replace(' ', '-');

字符串为immutable,创建后无法更改。以某种方式修改字符串的所有方法都将返回包含修改的新字符串。

答案 1 :(得分:10)

字符串是不可变的。

您需要保存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.

答案 2 :(得分:5)

replace and replaceAll方法返回带有替换结果的字符串。您使用返回的值,还是期望replaceText字符串更改?如果是后者,则不会看到更改,因为字符串为immutable

String replaceText = "AT AT";
String replaced = replaceText.replace(' ', '-');

// replaced will be "AT-AT", but replaceText will NOT change

答案 3 :(得分:5)

replace方法返回一个String,因此你需要重新分配你的字符串变量,即

String replaceText = "AT AT";                         
replaceText = replaceText.replace(' ', '-'); 

答案 4 :(得分:3)

字符串是不可变的。您需要使用replace:

中的返回值
replaceText = replaceText.replace(' ', '-');

答案 5 :(得分:1)

>>> array1 = np.array([[1,2,3],[4,5,6]])
>>> array1
array([[1, 2, 3],
       [4, 5, 6]])
>>> add = np.zeros((2,1), dtype=int64)
>>> add
array([[0],
       [0]])
>>> np.append(array1, add, axis=1)
array([[1, 2, 3, 0],
       [4, 5, 6, 0]])


>>> b=np.array([[6],[8]])
>>> np.append(array1,b,axis=1)
array([[1, 2, 3, 6],
       [4, 5, 6, 8]])

答案 6 :(得分:0)

如果要替换许多字符串,则需要考虑使用StringBuilder来提高性能。

String replaceText = "AT AT";
StringBuilder sb = new StringBuilder(replaceText);
sb.Replace(' ', '-');