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

问题描述:

如何获取字符串后面的字符列表?有没有一个内置的字符串方法来做到这一点?Java - 获取字符串中字符串后面的字符的最简单方法

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

我知道你可以用循环做到这一点,但有没有另一种方法可能更简单?

+0

你可以在单词试图分裂“网格X”,然后从所得到的数组中选择第一个元素[位0]或你可以拆分“:” – tudoricc 2014-12-07 19:31:39

后,只要抓住了人物“:”

String string = "Grid X: 32" 
int indexOFColon = string.indexOf(":"); 
String endNumber = string.subString(indexOFColon + 2); 

所以,你得到的冒号,这是6在这种情况下的指数,然后抢开始后2子,这就是你的号码开始。

有两种可能性:

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

    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); 
    

有多种方式可以获得这完成了。最简单的可能只是子串。但是,如果该字符串实际上不启动它是充满危险的“网格X:” ......

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

正则表达式是在这个相当不错。

+0

我给你一个,因为我没有看到下来的选民的任何解释 – 2014-12-08 06:08:13

下面的代码可用于获取chacters的名单: -

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); 
}