我正在尝试将空格字符替换为字符串中的连字符。
String replaceText = "AT AT";
replaceText.replace(' ', '-');
但是当我这样做时,我似乎无法取代角色。我尝试了replaceAll()
方法,它也不起作用。
++++++回答+++++++
抱歉,我的错误......深夜编程的结果:(感谢答案我可能无法回答所有问题,所以我会检查第一个答案
replaceText = replaceText.replace(' ', '-');
答案 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(' ', '-');