我有几个字符串多个掩码.我想知道有没有更好的方法来处理字符串与掩码解析而不是String.spilt和循环标记和识别序列等.这个代码也很笨拙,许多令牌逻辑必须编码.
样品掩码可以是:
示例字符串:
示例代码:
String[] arr = input.split("-");
int pos = 0;
for(String k:arr){
if(pos == 0) {
//-- k is of PROD
...
...
}
..
...
pos++;
}
Run Code Online (Sandbox Code Playgroud)
针对每种掩码类型保留上述类型的代码.
您可以使用正则表达式组按组名http://docs.oracle.com/javase/tutorial/essential/regex/groups.html获取目标字符串.在Java中检查此正则表达式命名组
如果你不能使用命名组,你可以这样做(如果你的字符串结构绝对确定):
final static int PROD_POS = 1;
final static int STATE_POS = 3;
...
Pattern pattern = Pattern.compile("(some_regexp)-(some_regexp)-(some_regexp)");
Matcher matcher = pattern.matcher(input);
if ( matcher.matches() ) {
String state = matcher.group(STATE_POS);
}
Run Code Online (Sandbox Code Playgroud)