我无法根据某些分隔符对字符串进行标记或拆分。我需要标记两种类型的字符串。以下是模式:
a/b/c/d
和
a/b//d
我很困惑如何让一个函数解析两者。因为在解析将要解析哪个字符串之前我无法判断。因为数据是动态的。如果没有,我会NoSuchElmenet Exception
在搜索下一个令牌时得到。任何帮助表示赞赏。
我无法根据某些分隔符对字符串进行标记或拆分。我需要标记两种类型的字符串。以下是模式:
a/b/c/d
和
a/b//d
我很困惑如何让一个函数解析两者。因为在解析将要解析哪个字符串之前我无法判断。因为数据是动态的。如果没有,我会NoSuchElmenet Exception
在搜索下一个令牌时得到。任何帮助表示赞赏。
我想您想获取令牌{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}
我希望这对你有用。
干杯!
如果您只是想将两种模式分开或确定哪个是哪个,请尝试使用 java Pattern 类。下面,一个快速的解决方案
String testString = "a/b/c//d";
String checkfor = ".*//.*";
boolean matches = Pattern.matches(checkfor, testString);
Pattern.matches() 将搜索出现的两个“/”,然后分别返回(例如“//”而不是“/.../”)。
祝你好运