我对字符串的极端情况处理感到非常困惑,如何在将多个字符串作为参数时为方法选择正确的极端情况。
我从 StringUtils 类中理解它们:
StringUtils 类定义了与字符串处理相关的某些单词。
- 空 - 空
- 空 - 零长度字符串 ("")
- 空格 - 空格字符(' ',字符 32)
但是到了解决问题的时候,我完全不知道什么时候该选择 极端情况是什么。
例如,实现string.indexOf()
类似问题时,函数如下:
public int strStr(String haystack, String needle) {
if(needle==null|| needle.length()==0) return 0;
for( int i=0; i<haystack.length();i++){
if(i+needle.length()>haystack.length()){
break;
}
for( int j=0; j<needle.length();j++){
if(haystack.charAt(i+j)!=needle.charAt(j)){
break;
}
if(j==needle.length()-1){
return i;
}
}
}
return -1;
}
为什么当前的极端情况是正确的而不是:
if(haystack==null|| haystack.length()==0) return 0;
也不
if(haystack==null|| haystack.length()==0 ||needle==null || needle.length()==0) return 0;
也不
if(haystack==null|| needle==null) return 0;
最佳答案
不知道你的问题是什么。这就是 Apache StringUtils 实现 indexOf
方法的方式:
public static int indexOf(final CharSequence seq, final CharSequence searchSeq) {
if (seq == null || searchSeq == null) {
return INDEX_NOT_FOUND;
}
return CharSequenceUtils.indexOf(seq, searchSeq, 0);
}
我不确定您的方法来自哪里或您想问什么。
关于java - 当方法中使用多个字符串作为参数时,如何选择字符串极端情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57173241/