有没有比这更有效的分割字符串的方法?
String input = "=example>";
String[] split = input.split("=");
String[] split1 = split[1].split(">");
String result = split1[0];
结果将是“示例”。
如果string
您的绝对恒定格式使用子字符串,否则请使用正则表达式
result = result.substring(1, result.length() - 1);
你真的需要正则表达式吗?你可以做:
String result = input.substring(1, input.length()-1);
否则,如果您确实有正则表达式的案例,请使用字符类:
String result = input.replaceAll("[=>]", "");
如果您只想从中获取示例,请执行以下操作:
input.substring(1, input.lastIndexOf(">"))
您可以使用 RegEx 组做得更优雅:
String sourceString = "=example>";
// When matching, we can "mark" a part of the matched pattern with parentheses...
String patternString = "=(.*?)>";
Pattern p = Pattern.compile(patternString);
Matcher m = p.matcher(sourceString);
m.find();
// ... and access it later
String result = m.group(1);
你可以试试这个正则表达式:".*?((?:[a-z][a-z]+))"
但是当你使用这样的东西会更好:
String result = input.substring(1, input.length()-1);
尝试这个
String result = input.replace("[\\W]", "")
你也可以试试这个
String input = "=example>";
System.out.println(input.replaceAll("[^\\p{L}\\p{Nd}]", ""));
这将删除所有非单词字符
正则表达式可以完美地完成这项工作,但只是为了为未来的解决方案添加一些新的东西,你也可以使用第三方库,比如谷歌的 Guava,它为你的项目增加了很多功能,而Splitter对解决像你这样的问题真的很有帮助有。