Java:相当于C';什么是strnicmp?(StartWith和ignoreCase)

Java:相当于C';什么是strnicmp?(StartWith和ignoreCase),java,string,Java,String,我一直在使用string1.startsWith(string2),在上面的示例中它将返回false,但现在我需要忽略大小写敏感度,并且没有String.StartWithIgnoreCase() 除了做 String string1 = "abCdefGhijklMnopQrstuvwYz"; String string2 = "ABC"; 是否有一种有效的方法可以查看string1是否以不区分大小写的方式以string2开头?公共静态布尔起始WithIgnoreCase(字符串s,字符

我一直在使用string1.startsWith(string2),在上面的示例中它将返回false,但现在我需要忽略大小写敏感度,并且没有String.StartWithIgnoreCase()

除了做

 String string1 = "abCdefGhijklMnopQrstuvwYz";
 String string2 = "ABC";
是否有一种有效的方法可以查看string1是否以不区分大小写的方式以string2开头?

公共静态布尔起始WithIgnoreCase(字符串s,字符串w)
 string1.toLowerCase.startsWith(string2.toLowerCase());
{ 如果(w==null) 返回true; 如果(s==null | | s.length()这个怎么样:

public static boolean startsWithIgnoreCase(String s, String w)
    {
        if (w==null)
            return true;

        if (s==null || s.length()<w.length())
            return false;

        for (int i=0;i<w.length();i++)
        {
            char c1=s.charAt(i);
            char c2=w.charAt(i);
            if (c1!=c2)
            {
                if (c1<=127)
                    c1=Character.toLowerCase(c1);
                if (c2<=127)
                    c2=Character.toLowerCase(c2);
                if (c1!=c2)
                    return false;
            }
        }
        return true;
    }

该方法具有区分大小写的参数。

使用StringUtils库

string2.equalsIgnoreCase(string1.substring(0, string2.length())

我确定我需要它吗:不需要。但我将来可能需要它,在这种情况下,我想知道另一种选择。您的代码片段看起来像来自java2s(),请引用源代码,这不处理Unicode。当然,它是从链接中获取的。我可以引用原始链接,我还可以编写15个不同版本的链接,只是为了显示我能够做到:)但是为一个毫无用处的问题浪费这么多时间似乎太多了。那么JDK上的字符是unicode的,所以它应该处理unicode,在花时间搜索某个地方是否有一个简单的代码片段之前阅读文档。很酷,谢谢!我刚刚注意到似乎采取了这种方法。感谢匿名“-1”,不管是谁给的。我可能会指出,这不是一个特别有用的答案-我建议对您的答案进行更详细的扩展!抱歉,需要
string1.length()>string2.length()&&string2.equalsIgnoreCase(string1.substring(0,string2.length())
才能使用correct@HamzehSoboh,正确(差不多)。谢谢你指出。我没有考虑到
string1.substring(0,string2.length())
抛出
IndexOutOfBoundsException
如果
string1.length()
,但条件应该是
string1.length()>=string2.length()
    StringUtils.startsWithIgnoreCase("abCdefGhijklMnopQrstuvwYz", "ABC"); // true
string.toLowerCase().startsWith(string2.toLowerCase())