繁体   English   中英

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

[英]How to replace ' with empty string in Java

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

因此,当数据中的evr有特殊字符'时,我将面临nullpointer异常。 请建议如何进行此操作?

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

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

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

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

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

您的编辑

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

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

        String data="Sid's den";

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

        System.out.println(data);

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

字符串缓冲区

StringBuilder

只需尝试:

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

输出:

"foobarbuz"

在您的情况下:

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

尝试:

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

要么

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM