如果存在,如何从最后一个索引中的字符串中删除特定字符“,”。是否可以删除?
String str="update employee set name='david', where id=?";
如果存在,如何从最后一个索引中的字符串中删除特定字符“,”。是否可以删除?
String str="update employee set name='david', where id=?";
试试这个:
int index = str.length() - 2; //Calculating the index of the 2nd last element
str = str.subString(0,index); //This shall give you the string without the last element
或者,如果您希望删除特定字符,例如 "," :
str.replace(",","");
您还可以使用 indexOf() 方法(或 lastIndexOf() 方法)查找索引并创建两个子字符串,然后合并子字符串。或者,您可以根据字符拆分字符串并合并拆分的字符串。
如果您使用的逻辑类似于:
Map<String, Object> values --> populated with what you have to update
String update = "update employee set ";
for (String key : values.keySet())
{
update = update + key + "=" + values.get(key) + ",";
}
update = update + " where id = ?";
我建议您如下更改 for 循环,并且您不必进行任何类型的字符删除。
String update = "update employee set ";
String add = "";
for (String key : values.keySet())
{
update = update + add + key + "=" + values.get(key);
add = ", ";
}
update = update + " where id = ?";
来自Apache Common-lang的合适解决方案StringUtils
StringUtils#removeEnd(String str, String remove)
StringUtils#removeEndIgnoreCase(String str, String remove)
removeEnd
仅当子字符串位于源字符串的末尾时,该方法才会删除该子字符串。并且removeEndIgnoreCase
不区分大小写。
String str="update employee set name='david', where id=?";
System.out.println(""+StringUtils.removeEnd(str, REMOVABLE_CHAR));
也许是这样的:
String str="update employee set name='david', where id=?";
int i = str.lastIndexOf(",");
if(i > -1) {
String newStr = str.subSequence(0, i-1).toString() + str.subSequence(i+1, str.length()-1).toString();
}
如果要检查字符串中的最后一个字符,如果它是“,”字符则将其删除,则以下内容应该有效。
String str="update employee set name='david', where id=?,";
if(str.lastIndexOf(',') == str.length()-1){
str = str.substring(0, str.length()-1);
}
System.out.println(str);
此 if 语句检查最后一个 ',' 是否与字符串中的最后一个字符位于同一索引处(即,它是字符串中的最后一个字符)。如果是这样,它将删除最后一个字符并打印新字符串。
输入:update employee set name='david', where id=?,
输出:update employee set name='david', where id=?
或者
输入:update employee set name='david', where id=?
输出:update employee set name='david', where id=?