java中的正则表达式与indexOf的性能相比

Geo*_*rge 6 java performance

请有人告诉我如何匹配"_"和句号"." 使用正则表达式在字符串中激动一次,使用indexOf()而不是正则表达式也更有效.

String s= "Hello_Wor.ld"  or 
s="12323_!£££$.asdfasd"
Run Code Online (Sandbox Code Playgroud)

基本上任何字符都不能在前后出现_,.唯一的要求是整个字符串只应包含一个_和的出现.

JB *_*zet 7

indexOf 将比正则表达式快得多,并且可能也更容易理解.

只测试是否indexOf('_') >= 0,然后如果indexOf('_', indexOfFirstUnderScore) < 0.在此期间做同样的事情.

private boolean containsOneAndOnlyOne(String s, char c) {
    int firstIndex = s.indexOf(c);
    if (firstIndex < 0) {
        return false;
    }
    int secondIndex = s.indexOf(c, firstIndex + 1);
    return secondIndex < 0;
}
Run Code Online (Sandbox Code Playgroud)