我有一个字符串,我需要从中删除某个字符,我已经能够做到这一点,但我仍然有问题。我去掉了字符,但字符串的长度保持不变。
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
为什么它似乎在计算字符串中不再存在的字符?
最佳答案
此替换
不正确:
data = data.replace(letter, '\0');
Java 并不特别对待空字符。相反,使用:
data = data.replace(String.valueOf(letter), "");
这是因为有两个重载,都不是 replace(char, CharSequence)
。因此,我们使用 replace(CharSequence, CharSequence)
重载(因为字符串是 CharSequence
)
如果您同意将 letter
重新定义为字符串,您可以简单地执行以下操作:
data = data.replace(letter, "");
关于java - 在Java中从字符串中删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145947/