在Java中删除字符串中的字符
我有一个字符串,我需要从中删除某个字符,我已经能够做到这一点,但我仍然有一个问题。我去掉了字符,但字符串的长度保持不变在Java中删除字符串中的字符,java,string,Java,String,我有一个字符串,我需要从中删除某个字符,我已经能够做到这一点,但我仍然有一个问题。我去掉了字符,但字符串的长度保持不变 public class HelloWorld{ public static void main(String []args){ String data = "Hello World"; System.out.println(data); System.out.println("string length: " + data.l
public class HelloWorld{
public static void main(String []args){
String data = "Hello World";
System.out.println(data);
System.out.println("string length: " + data.length());
char letter = 'l';
data = data.replace(letter, '\0');
System.out.println(data);
System.out.println("string length: " + data.length());
}
}
这给了我输出:
Hello World
string length: 11
Heo Word
string length: 11
我需要它是:
Hello World
string length: 11
Heo Word
string length: 8
为什么它似乎在计算不再在字符串中的字符数?您没有删除字符,只是替换了它们
试试这个:
String letter = "l";
data = data.replace(letter, "");
此
替换不正确:
Java不专门处理空字符。相反,请使用:
data = data.replace(String.valueOf(letter), "");
这是因为有两个重载,它们都不是replace(char,CharSequence)
。因此,我们使用replace(CharSequence,CharSequence)
重载(因为字符串是CharSequence
s)
如果您同意将字母重新定义为字符串,您只需执行以下操作:
data = data.replace(letter, "");
字符串在java中是不可变的。。。谷歌it@Scorpion这不是问题所在,他正在正确地重新分配。你必须是一个C程序员。。。
data = data.replace(letter, "");