将空格替换为连字符

ben*_*ben 18 java string android

我试图将空格字符替换为我的字符串中的连字符.

String replaceText = "AT AT";
replaceText.replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我似乎无法取代这个角色.我尝试了这种replaceAll()方法,它也无法正常工作.

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

对不起我的错误..深夜编程的结果:(

谢谢你的答案,我可能无法回答所有,所以我会检查第一个答案

replaceText = replaceText.replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)

Eri*_*rik 33

replaceText = replaceText.replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)

字符串是不可变的,它们在创建后不能更改.以某种方式修改字符串的所有方法都将返回包含修改的新字符串.


Mat*_*all 10

字符串是不可变的.

您需要保存返回的值replace().如果要替换多个匹配项,请使用replaceAll().

String replaceText = "AT AT";
replaceText = replaceText.replaceAll(" ", "-");
Run Code Online (Sandbox Code Playgroud)

正如@Mark Peters在评论中指出的那样,replace(Char, Char)足以(并且更快)替换所有事件.

String replaceText = "AT AT";
replaceText = replaceText.replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)

如果这个事实困扰你:不变性是一个Good Thing.

  • 可能不是......但那个大胆的信息让我很奇怪. (4认同)

Rob*_*ska 5

replacereplaceAll方法返回一个字符串与被替换的结果.您使用返回的值,还是期望replaceTextString更改?如果是后者,你将看不到变化,因为字符串是不可变的.

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

// replaced will be "AT-AT", but replaceText will NOT change
Run Code Online (Sandbox Code Playgroud)


Hak*_*bay 5

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

String replaceText = "AT AT";                         
replaceText = replaceText.replace(' ', '-'); 
Run Code Online (Sandbox Code Playgroud)


Bre*_*den 5

字符串是不可变的。您需要使用替换的返回值:

replaceText = replaceText.replace(' ', '-');
Run Code Online (Sandbox Code Playgroud)