如何检查冒号的字符串并拆分以获取第一个索引(如果它有冒号)

How to check string for colon and split to get first index if it has colon

我有一个 String 可以是以下两种形式:

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

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

有没有更好的方法使用 Guava Splitter 或任何其他方法来完成上述操作?

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

怎么样:

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(":"));              //""

一种简单的方法是不使用 split,而是从 : (+ 1) 的第一个索引开始获取子字符串。

  • 如果找不到冒号,indexOf(':') will return -1 and you can start the substring0
  • 如果找到冒号,它将 return 其 index,您可以从 index + 1 开始忽略它。

示例代码为:

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