我有String
这两种形式:
prefix:abcdefg
abcdefg
我需要检查我的String是否包含:
,如果它包含:
,则在冒号上拆分并得到第一个索引,abcdefg
但如果它不包含:
{1}}然后使用字符串abcdefg
。所以我有下面的代码做同样的事情。
holder.getClientId().contains(":") ? holder.getClientId().split(":")[1] : holder.getClientId()
使用Guava Splitter或其他方式有更好的方法吗?
假设holder.getClientId()
不能为空或空字符串。
答案 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(":")); //""