如何用Java替换'空字符串'

时间:2014-06-03 12:29:39

标签: java replace quotes

如何在Java中用空字符串替换单引号'。我试过以下但似乎没有工作。

String data="Sid's den";
data.replace("'", "");
data.replaceAll("'", "");

提前致谢。非常感谢任何帮助。(输出应该是:Sids den)

谢谢大家的回复。我想我应该更清楚我的问题。基本上我从表中获取特殊字符,并且我们必须从同一个表中替换它的值。以下是代码片段:

query = "select spl_char, replace_with from entcon_splchars";
ptsmt = DBConnector.sqlConnection.prepareStatement(query);
rs = ptsmt.executeQuery();

while (rs.next()) {
        if(data.contains(rs.getString("spl_char"))){
          data = data.replace(rs.getString("spl_char"),rs.getString("replace_with"));
            }
         }

所以在数据中我们有特殊字符'然后我面临nullpointer异常。请建议如何继续这个?

5 个答案:

答案 0 :(得分:5)

使用replace,无需正则表达式。

请记住String是不可变的,因此您需要将data.replace("'", "");分配给变量。

例如:data = data.replace("'", "");

答案 1 :(得分:3)

字符串是不可变的,因此您将收到一个新实例。尝试

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

您的编辑

检查getString()的返回值 - 您可以获得NPE,因为您的数据库表包含nullspl_char列中的replace_with个值

答案 2 :(得分:3)

我可以看到你的问题,如果你需要更换它,你需要更换它,还需要将它分配回变量。解决方案应该是,

        String data="Sid's den";

        data = data.replaceAll("'", "");

        System.out.println(data);

因为String在java中是不可变的。但是StringBuffer和StringBuilder在java中是可变的。

String

StringBuffer

StringBuilder

答案 3 :(得分:2)

试试:

"foo'bar'buz".replace("'", "")

输出:

"foobarbuz"

在你的情况下:

String data = "Sid's den";
String output = data.replace("'", "");

答案 4 :(得分:1)

尝试:

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

OR

data = data.replaceAll("'", "") ;

您需要将替换的字符串分配给变量。