如何在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异常。请建议如何继续这个?
答案 0 :(得分:5)
使用replace
,无需正则表达式。
请记住String
是不可变的,因此您需要将data.replace("'", "");
分配给变量。
例如:data = data.replace("'", "");
答案 1 :(得分:3)
字符串是不可变的,因此您将收到一个新实例。尝试
data = data.replace("'", "");
检查getString()
的返回值 - 您可以获得NPE
,因为您的数据库表包含null
或spl_char
列中的replace_with
个值
答案 2 :(得分:3)
我可以看到你的问题,如果你需要更换它,你需要更换它,还需要将它分配回变量。解决方案应该是,
String data="Sid's den";
data = data.replaceAll("'", "");
System.out.println(data);
因为String在java中是不可变的。但是StringBuffer和StringBuilder在java中是可变的。
答案 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("'", "") ;
您需要将替换的字符串分配给变量。