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

use*_*349 1 java guava

我有一个String将以这两种形式:

  • prefix:abcdefg
  • abcdefg

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

holder.getClientId().contains(":") ? holder.getClientId().split(":")[1] : holder.getClientId()
Run Code Online (Sandbox Code Playgroud)

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

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

Tun*_*aki 5

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

  • 如果未找到冒号,indexOf(':')将返回-1并且您可以启动substringat 0.
  • 如果找到冒号,它将返回它index,你可以开始index + 1忽略它.

示例代码如下:

String partAfterDot = str.substring(str.indexOf(':') + 1);
Run Code Online (Sandbox Code Playgroud)