如何在Java中用空字符串替换'。

5
在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"));
            }
         }

当数据中出现特殊字符 ' 时,我会遇到空指针异常。请建议如何继续处理?


阅读文档data.replace("'", "")将返回新的String(而不是更改当前字符串),这在文档中已经说明:“返回:结果字符串”。 - Dmitry Ginzburg
1
@Sid 请查看已编辑的答案。 - steffen
5个回答

7

使用 replace 函数,不需要正则表达式。

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

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


4

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

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

您的编辑

检查 getString() 的返回值 - 您可能会因为数据库表中的某个列 spl_charreplace_with 包含 null 值而导致 NPE


3
我可以看出你的问题了,如果你需要将其替换,你需要先进行替换,然后将其重新赋值给变量。解决方案应该是这样的:
        String data="Sid's den";

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

        System.out.println(data);

在Java中,String是不可变的。但是StringBuffer和StringBuilder是可变的。请参考以下链接:

String

StringBuffer

StringBuilder


2

只需尝试以下操作:

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

输出:

"foobarbuz"

根据您的情况:

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

1

尝试:

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

或者

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

你需要将替换后的字符串赋值给一个变量。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接