java - 当方法中使用多个字符串作为参数时,如何选择字符串极端情况?

标签 java

我对字符串的极端情况处理感到非常困惑,如何在将多个字符串作为参数时为方法选择正确的极端情况。

我从 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/

相关文章:

java - 为什么 IntelliJ 要接受传入的网络连接?

java - BitSet 值得使用吗?

java - SerialVersionUID 未在 Servlet 中声明

java - 展平集合

Java如何从代码运行另一个.jar程序以响应按钮单击

java - 找到差异并将其存储在新数组中?

java - API Spring boot 自动重定向到登录页面

java - 通用语言中是否有处理单数/复数单词的单行词?

java - 从 DNS 响应获取 IP

java - 类型的未定义方法