0

如果存在,如何从最后一个索引中的字符串中删除特定字符“,”。是否可以删除?

String str="update employee set name='david', where id=?";
4

6 回答 6

1

试试这个:

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() 方法)查找索引并创建两个子字符串,然后合并子字符串。或者,您可以根据字符拆分字符串并合并拆分的字符串。

于 2013-08-22T09:33:47.557 回答
0

如果您使用的逻辑类似于:

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 = ?";
于 2013-08-22T10:39:35.367 回答
0

来自Apache Common-lang的合适解决方案StringUtils

StringUtils#removeEnd(String str, String remove)
StringUtils#removeEndIgnoreCase(String str, String remove)

removeEnd仅当子字符串位于源字符串的末尾时,该方法才会删除该子字符串。并且removeEndIgnoreCase不区分大小写。

于 2013-08-22T09:11:46.537 回答
0

试试StringUtils.removeEnd

String str="update employee set name='david', where id=?";
        System.out.println(""+StringUtils.removeEnd(str, REMOVABLE_CHAR));
于 2013-08-22T09:12:29.077 回答
0

也许是这样的:

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();
}
于 2013-08-22T09:17:10.507 回答
0

如果要检查字符串中的最后一个字符,如果它是“,”字符则将其删除,则以下内容应该有效。

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=?

于 2013-08-22T10:03:34.900 回答