我想从字符串中删除charecters。示例:我有一个应用程序,当用户勾选其构建sql脚本的复选标记时,如果他们检查女性,则会添加到字符串And Gender = 'Female'
。如果他们选择男性,则会添加And Where gender = 'Male'
。当脚本检查时添加到字符串时脚本运行良好,但是当您取消选中项目时,我不知道如何删除检查时添加的字符。我尝试了.Replace
.ReplaceAll
,其他所有人都替换了。我知道要删除的字符串,为什么不用""
替换它。
String SQL;
SQL += " AND Gender = 'Female'";
SQL.Replace("AND Gender = 'Female'","");
这不起作用!
答案 0 :(得分:7)
SQL = SQL.replace("AND Gender = 'Female'","");
字符串在java中是不可变的
答案 1 :(得分:1)
java字符串(java.lang.String)是不可变的;它无法编辑。您可以尝试使用StringBuffer(java.lang.StringBuffer),它是一个可变缓冲区,用于返回字符串。
StringBuffer SQL = new StringBuffer();
SQL.append(" AND Gender = 'Female'");
您还可以使用replace
和delete
从缓冲区中删除子字符串。编辑完缓冲区后,只需使用SQL.toString()
。
答案 2 :(得分:1)
如果你想要一些可变的东西,不要使用String。相反,你最好使用StringBuilder对象。然后,当您完成修改后,可以在其上调用toString()以获取所需的String。 API将向您展示此灵活类的方法。
答案 3 :(得分:1)
String是不可变类。这是另一种解决方案:转换为StringBuffer或StringBuilder和 从startIndex删除到endIndex
String s = "test tes te t ";
String str = new StringBuffer(s).delete(start, end).toString();
for example :
String str = new StringBuffer(s).delete(0, 8).toString();
System.out.println(str); // s te t