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

时间:2016-01-20 20:43:46

标签: java guava

我有String这两种形式:

  • prefix:abcdefg
  • abcdefg

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

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

使用Guava Splitter或其他方式有更好的方法吗?

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

2 个答案:

答案 0 :(得分:5)

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

  • 如果找不到冒号,indexOf(':')将返回-1,您可以0开始substring
  • 如果找到冒号,它将返回index,您可以从index + 1开始忽略它。

示例代码为:

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

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