Java - 获取字符串中字符串之后的字符的最简单方法

时间:2014-12-07 19:25:10

标签: java string

如何获取子字符串后面的字符串中的字符列表?是否有内置的String方法来执行此操作?

List<String> characters = new ArrayList<>();
String string = "Grid X: 32";
// How can I get the characters that come after "Grid X: "?

我知道你可以通过循环来做到这一点,但还有另一种方法可能更简单吗?

4 个答案:

答案 0 :(得分:1)

只需抓住&#34;:&#34;

之后的字符
String string = "Grid X: 32"
int indexOFColon = string.indexOf(":");
String endNumber = string.subString(indexOFColon + 2);

所以你得到冒号的索引,在这种情况下为6,然后抓住从那之后开始2的子串,这是你的号码开始的地方。

答案 1 :(得分:1)

有两种可能性:

  1. 使用正则表达式(正则表达式):

    Matcher m = Pattern.compile("Grid X: (\\d+)");
    if (m.matches(string))
    {
        int gridX = Integer.parseInt(m.group(1));
        doSomethingWith(gridX);
    }
    
  2. 使用字符串的子字符串方法:

    int gridX = Integer.parseInt(string.substring(string.indexOf(':')+1).trim());
    doSomethingWith(gridX);
    

答案 2 :(得分:1)

下面的代码可用于获取字符列表: -

String gridString = "Grid X: 32";

String newString = gridString.subSubString(gridString.indexOf(gridString ) +  gridString    .length );
char[] charArray = newString.toCharArray();
Set nodup = new HashSet(); 
for(char cLoop : charArray){
nodup.add(cLoop);
}

答案 3 :(得分:0)

完成这项工作的方法不止一种。最简单的可能只是子串。但如果字符串实际上不是以“网格X:”开始......那么它就充满了危险......

String thirtyTwo = string.substring( s.indexOf("Grid X: ") + "Grid X: ".length() );

Regex也非常擅长这一点。