删除java字符串中的字符

时间:2010-12-20 23:13:47

标签: java string

我想从字符串中删除charecters。示例:我有一个应用程序,当用户勾选其构建sql脚本的复选标记时,如果他们检查女性,则会添加到字符串And Gender = 'Female'。如果他们选择男性,则会添加And Where gender = 'Male'。当脚本检查时添加到字符串时脚本运行良好,但是当您取消选中项目时,我不知道如何删除检查时添加的字符。我尝试了.Replace .ReplaceAll,其他所有人都替换了。我知道要删除的字符串,为什么不用""替换它。

String SQL; 
SQL += " AND Gender = 'Female'";  
SQL.Replace("AND Gender = 'Female'","");

这不起作用!

4 个答案:

答案 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'");

您还可以使用replacedelete从缓冲区中删除子字符串。编辑完缓冲区后,只需使用SQL.toString()

答案 2 :(得分:1)

如果你想要一些可变的东西,不要使用String。相反,你最好使用StringBuilder对象。然后,当您完成修改后,可以在其上调用toString()以获取所需的String。 API将向您展示此灵活类的方法。

答案 3 :(得分:1)

String是不可变类。这是另一种解决方案:转换为StringBufferStringBuilder和 从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