赞
踩
由于项目的需要看了Spring框架StringUtils的源码,发现其中一个方法有点问题,以下是其方法的源代码:
/**
* Test if the given String ends with the specified suffix,
* ignoring upper/lower case.
* @param str the String to check
* @param suffix the suffix to look for
* @see java.lang.String#endsWith
*/
public static boolean endsWithIgnoreCase(String str, String suffix) {
if (str == null || suffix == null) {
return false;
}
if (str.endsWith(suffix)) {
return true;
}
if (str.length() < suffix.length()) {
return false;
}
String lcStr = str.substring(suffix.length()).toLowerCase();
String lcSuffix = suffix.toLowerCase();
return lcStr.equals(lcSuffix);
}
这个方法是不能实现做到像代码说明中那样的功能的,这里我们可以给出一个小小的修改(由我同学提供的)后的版本:
public static boolean endsWithIgnoreCase(String str, String suffix) {
if (str == null || suffix == null) {
return false;
}
if (str.endsWith(suffix)) {
return true;
}
if (str.length() < suffix.length()) {
return false;
}
String lcStr = str.substring(str.length()-suffix.length()).toLowerCase();
String lcSuffix = suffix.toLowerCase();
return lcStr.equals(lcSuffix);
}
}
这里做的主要修改是:
把String lcStr = str.substring(suffix.length()).toLowerCase();改成
String lcStr = str.substring(str.length()-suffix.length()).toLowerCase();就能实现方法签名所宣称的功能。
notes:也有可能是小弟我理解错误了该方法,还没发邮件去确认这个问题。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。