java - 在Java中从字符串中删除字符

标签 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.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/

相关文章:

sql - PostgreSQL ERROR 列不存在指的是列值

java - Android:状态栏的跳跃效果

java - 安卓 NDK 计时器

java - 抽象数据与抽象行为

C++ 字符串赋值给 at(int) 函数

python - 如何将字符串变量从 python 传递给 PowerShell 函数

java - 如何在java中设置jLabel不可点击

java - eclipse控制台没有显示异常

php - 在不破坏 html 标签的情况下剪切文本

java - 如何在Java中的xml字符串中包含 "encoding="UTF-8""?