String.endsWith 的 StringBuffer 替代品是什么?

What's the StringBuffer alternative for String.endsWith?

我一直在并发应用中使用字符串,为了让代码更优化,我必须使用StringBuffer而不是字符串?但我很困惑 string.endsWith("\")StringBuffer 的替代方案是什么。 StringBuffer 的什么方法应该用于上述目的?

没有直接API。你可以试试 stringBuffer.lastIndexOf("\")==stringBuffer.length()-1

stringBuffer.charAt(stringBuffer.length()-1)=='\'

PS : 以上代码示例未经测试.

您可以检查 StringBuffer

的最后一个字符
if(buf.charAt(buf.length()-1)=='\'){
  //
}

字符串对象 不可变 - 因此没有 changed/modified 对象状态的选项。换句话说,你不应该担心并发。 我的建议:继续使用 String!

如果您使用 commons-lang 依赖项,StringUtils.endsWith(sb, s)sb.lastIndexOf(s)==sb.length()-s.length() 更简单,并且它也适用于 StringBuilder。