我有一个字符串,我需要从中删除某个字符,我已经能够做到这一点,但我仍然有问题。我去掉了字符,但字符串的长度保持不变。
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());
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我输出:
Hello World
string length: 11
Heo Word
string length: 11
Run Code Online (Sandbox Code Playgroud)
我需要它是:
Hello World
string length: 11
Heo Word
string length: 8
Run Code Online (Sandbox Code Playgroud)
为什么它似乎在计算字符串中不再存在的字符?
这个replace不对:
Run Code Online (Sandbox Code Playgroud)data = data.replace(letter, '\0');
Java 并不特别对待空字符。相反,使用:
data = data.replace(String.valueOf(letter), "");
Run Code Online (Sandbox Code Playgroud)
这是因为有两个重载,但都不是replace(char, CharSequence). 因此我们使用replace(CharSequence, CharSequence)重载(因为字符串是CharSequences)
如果您同意重新定义letter为字符串,您可以简单地执行以下操作:
data = data.replace(letter, "");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1720 次 |
| 最近记录: |