2016-01-20 57 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(":"));    //""