2016-01-20 22 views
1

我有一个String这将是无论是在这两种形式:如何检查结肠和分割字符串得到第一指标,如果它有结肠

  • prefix:abcdefg
  • abcdefg

我需要检查我的字符串是否包含:并且它是否包含:然后拆分冒号并获得第一个索引,即abcdefg但如果它不包含: th请使用原样的字符串,即abcdefg。所以我有下面的代码做同样的事情。

holder.getClientId().contains(":") ? holder.getClientId().split(":")[1] : holder.getClientId() 

有没有更好的方法做上述事情使用番石榴分流器或任何其他方式?

假设holder.getClientId()不能为空或空字符串。

回答

5

一个简单的方法是不使用split而是采取从:第一指数(+ 1)启动子。

  • 如果没有发现结肠,indexOf(':')将返回-1,你可以在0开始substring
  • 如果找到冒号,它将返回它的index,并且您可以从index + 1开始忽略它。

样品代码将是:

String partAfterDot = str.substring(str.indexOf(':') + 1); 
4

如何像:

public static String getPartAfterColon(String text){ 
    return text.substring(text.indexOf(':')+1); 
} 

演示:

System.out.println(getPartAfterColon("prefix:abcdefg")); //"abcdefg" 
System.out.println(getPartAfterColon("abcdefg"));  //"abcdefg" 
System.out.println(getPartAfterColon(""));    //"" 
System.out.println(getPartAfterColon(":"));    //""