0

我无法根据某些分隔符对字符串进行标记或拆分。我需要标记两种类型的字符串。以下是模式:

   a/b/c/d   

   a/b//d

我很困惑如何让一个函数解析两者。因为在解析将要解析哪个字符串之前我无法判断。因为数据是动态的。如果没有,我会NoSuchElmenet Exception在搜索下一个令牌时得到。任何帮助表示赞赏。

4

2 回答 2

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}

我希望这对你有用。

干杯!

于 2013-07-03T08:13:23.507 回答
1

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

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

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

祝你好运

于 2013-07-03T08:30:55.893 回答