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

Posted

技术标签:

【中文标题】如何在Java中用空字符串替换\'【英文标题】:How to replace ' with empty string in Java如何在Java中用空字符串替换' 【发布时间】:2014-07-23 18:59:54 【问题描述】:

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

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

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

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

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"));
            
         

所以当我们在数据中有特殊字符 ' 时,我将面临空指针异常。请建议如何进行此操作?

【问题讨论】:

阅读doc。 data.replace("'", "") 将返回新的String(不更改当前),这在文档中说明:“返回:结果字符串” @Sid 查看编辑后的答案。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:

试试看:

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

输出:

"foobarbuz"

在你的情况下:

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

【讨论】:

【参考方案3】:

试试:

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

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

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

【讨论】:

【参考方案4】:

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

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

您的编辑

检查getString() 的返回值 - 您可以获得NPE,因为您的数据库表在spl_charreplace_with 列之一中包含null 值。

【讨论】:

【参考方案5】:

我可以看到您的问题,如果您需要替换它,则需要替换它并且还需要将其分配回变量。解决办法应该是,

        String data="Sid's den";

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

        System.out.println(data);

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

String

StringBuffer

StringBuilder

【讨论】:

以上是关于如何在Java中用空字符串替换'的主要内容,如果未能解决你的问题,请参考以下文章

如何使用scala在Apache spark中用空字符串(“”)替换空值[重复]

MySql查询在Select中用空字符串替换NULL

如何在 C#.NET 中用空字符替换字符串中的字符

如何在java中用\替换字符串中的“(双引号)”

如何在JAVA中用不同的子字符串替换字符串的子字符串?

在Ruby中用\'替换'?