Dee*_*tty 1 java string parsing
我有以下字符串
String S1="S1_T1_VIEW";
Run Code Online (Sandbox Code Playgroud)
我希望它被拆分并分配给字符串,如下所示:
String permission = "VIEW";
String component = "S1_T1";
String parent = "S1";
Run Code Online (Sandbox Code Playgroud)
我尝试使用S1.split() 功能它没有多大帮助.
字符串也可以是这样的
String S1="S1_T1_C1_DELETE";
Run Code Online (Sandbox Code Playgroud)
那段时间的结果应该是
String permission = "DELETE";
String component = "S1_T1_C1";
String parent = "S1_T1";
Run Code Online (Sandbox Code Playgroud)
任何的意见都将会有帮助 .
提前致谢
我假设以下内容:
permission是S1遵循最后一个下划线的部分.component是S1最后一个下划线之前的部分.parent是部分component前述的最后的下划线.如果是这样,也许尝试以下方法?这基本上只是对上述规则的字面解释,通过查找适当的下划线来拆分字符串.
int lastUnderscore = S1.lastIndexOf("_");
String permission = S1.substring(lastUnderscore + 1);
String component = S1.substring(0, lastUnderscore);
lastUnderscore = component.lastIndexof("_");
String parent = component.substring(0, lastUnderscore);
Run Code Online (Sandbox Code Playgroud)
我们也可以使用正则表达式.
private static final Pattern pattern = Pattern.compile("^((.+)_[^_]+)_([^_]+)$");
final Matcher matcher = pattern.matcher(input);
if (!matcher.matches()) {
return null;
}
String permission = matcher.group(3);
String component = matcher.group(1);
String parent = matcher.group(2);
Run Code Online (Sandbox Code Playgroud)