标记或拆分字符串

时间:2013-07-03 08:02:23

标签: java android split stringtokenizer

我在基于某些分隔符进行标记或拆分字符串时遇到问题。我需要标记两种类型的字符串。以下是模式:

   a/b/c/d   

   a/b//d

我很困惑如何通过一个函数解析它们。因为在解析哪个字符串即将被解析之前我无法判断。由于数据是动态的。如果没有,我会在搜索下一个令牌时获得NoSuchElmenet Exception。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

我想你想获得令牌{a, b, c, d}{a, b, d},因此,使用StringTokenizer类非常容易。

看看这个例子:

String exampleA = "a/b/c/d";
StringTokenizer tokens=new StringTokenizer(exampleA , "/");
while(tokens.hasMoreTokens()){
    System.out.println(tokens.nextToken());
}

你会得到:

{a, b, c, d}

而且,对于第二个例子:

String exampleB = "a/b//d";
StringTokenizer tokens=new StringTokenizer(exampleB, "/");
while(tokens.hasMoreTokens()){
    System.out.println(tokens.nextToken());
}

你会得到:

{a, b, d}

我希望这对你有用。

干杯!

答案 1 :(得分:1)

如果您只想分离这两个模式或确定哪个模式,请尝试使用java Pattern类。下面,快速解决方案

String testString = "a/b/c//d";
String checkfor = ".*//.*";
boolean matches = Pattern.matches(checkfor, testString);

Pattern.matches()将搜索两个“/”的出现,然后相互返回并分别返回(例如“//”而不是“/ ... /”)。

祝你好运

相关问题