用连字符将一个字符串分成两个字符串

时间:2011-02-11 05:38:05

标签: java string substring

我从请求中获取String变量。

String issueField = request.getParameter("issueno");

中间可能有也可能没有连字符。我希望能够遍历字符串并在看到连字符时将字符串分开。

4 个答案:

答案 0 :(得分:12)

使用String#split:

String[] parts = issueField.split("-");

然后您可以使用parts[0]获取第一部分,parts[1]获取第二部分,...

答案 1 :(得分:2)

答案 2 :(得分:1)

虽然String.split可以完成这项工作,但是Guava的Splitter类不会默默地丢弃尾随分隔符,并且它不会强制使用正则表达式时不需要:

http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Splitter.html

关于您的问题,这是一段代码:

Iterable<String> parts = Splitter.on('-').split(issueField);

使用Splitter而不是String.split的一些额外奖励:

  • 返回的Iterable是懒惰的。在 换句话说,它实际上不会这样做 一直工作直到你迭代它。
  • 它不会拆分所有令牌 并将它们存储在内存中。您可以 迭代一个巨大的字符串, 逐个令牌,没有加倍 内存使用情况。

不使用Splitter的唯一原因是你不想在你的类路径中包含Guava。

答案 3 :(得分:0)

您也可以使用java.util.StringTokenizer类。虽然String.split对你的问题更容易和更合适。