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。
我一直在并发应用中使用字符串,为了让代码更优化,我必须使用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。