0

有没有比这更有效的分割字符串的方法?

String input = "=example>";
String[] split = input.split("=");
String[] split1 = split[1].split(">");
String result = split1[0];

结果将是“示例”。

4

9 回答 9

2
String result = input.replaceAll("[=>]", "");

非常简单的正则表达式!

要了解更多信息,请访问此链接:这里

于 2013-08-08T10:55:21.640 回答
1

如果string您的绝对恒定格式使用子字符串,否则请使用正则表达式

result = result.substring(1, result.length() - 1); 
于 2013-08-08T10:55:53.907 回答
1

你真的需要正则表达式吗?你可以做:

String result = input.substring(1, input.length()-1);

否则,如果您确实有正则表达式的案例,请使用字符类

String result = input.replaceAll("[=>]", "");
于 2013-08-08T10:54:43.787 回答
1

如果您只想从中获取示例,请执行以下操作:

input.substring(1, input.lastIndexOf(">"))
于 2013-08-08T10:55:11.563 回答
1

您可以使用 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);
于 2013-08-08T10:57:36.440 回答
0

你可以试试这个正则表达式:".*?((?:[a-z][a-z]+))"

但是当你使用这样的东西会更好:

String result = input.substring(1, input.length()-1);
于 2013-08-08T10:57:17.593 回答
0

尝试这个

String result = input.replace("[\\W]", "")
于 2013-08-08T10:58:42.257 回答
0

你也可以试试这个

    String input = "=example>";
    System.out.println(input.replaceAll("[^\\p{L}\\p{Nd}]", ""));

这将删除所有非单词字符

于 2013-08-08T11:13:55.360 回答
0

正则表达式可以完美地完成这项工作,但只是为了为未来的解决方案添加一些新的东西,你也可以使用第三方库,比如谷歌的 Guava,它为你的项目增加了很多功能,而Splitter对解决像你这样的问题真的很有帮助有。

于 2013-08-08T11:14:07.407 回答