从Java中删除字符串中的字符

时间:2014-04-18 01:14:04

标签: java string

我有一个字符串,我需要从中删除某个字符,我已经能够做到这一点,但我仍然有问题。我摆脱了char,但字符串的长度保持不变。

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

为什么它似乎计算不再在字符串中的字符?

2 个答案:

答案 0 :(得分:4)

replace不正确:

data = data.replace(letter, '\0');

Java不会特别处理空字符。相反,使用:

data = data.replace(String.valueOf(letter), "");

这是因为有两个重载,都不是replace(char, CharSequence)。因此,我们使用replace(CharSequence, CharSequence)重载(因为字符串是CharSequence s)

如果您可以将letter重新定义为String,则可以执行以下操作:

data = data.replace(letter, "");

答案 1 :(得分:3)

你没有删除字符,只是替换它们。

试试这个:

String letter = "l";
data = data.replace(letter, "");