如何用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")); } }
所以在数据中我们有特殊的字符’然后我面临nullpointerexception。 请建议如何继续这个?
字符串是不可变的,因此您将收到一个新实例。 尝试
data = data.replace("'", "");
你的编辑
检查getString()
的返回值 – 您可以获取NPE
因为数据库表在其中一列spl_char
或replace_with
中包含null
值。
使用replace
,不需要正则表达式。
请记住, String
是不可变的,因此您需要分配data.replace("'", "");
变量。
例如: data = data.replace("'", "");
我可以看到你的问题,如果你需要更换它,你需要更换它,还需要将它分配回变量。 解决方案应该是,
String data="Sid's den"; data = data.replaceAll("'", ""); System.out.println(data);
因为String在java中是不可变的。 但是StringBuffer和StringBuilder在java中是可变的。
串
的StringBuffer
StringBuilder的
试试:
"foo'bar'buz".replace("'", "")
输出:
"foobarbuz"
在你的情况下:
String data = "Sid's den"; String output = data.replace("'", "");
尝试:
data = data.replace ("'", "") ;
要么
data = data.replaceAll("'", "") ;
您需要将替换的字符串分配给变量。