用连字符将一个字符串分成两个字符串
我从请求中获取String变量。
String issueField = request.getParameter("issueno");
这可能是也可能没有中间的连字符。 我想能够遍历字符串并在看到连字符时划分字符串。
使用String#split:
String[] parts = issueField.split("-");
然后你可以使用parts[0]
获得第一部分,第二parts[1]
,…
String.split
虽然String.split可以完成这项任务,但是Guava的Splitter类并不会默默地丢弃尾随分隔符,并且它的API不会在不需要时强制使用正则表达式:
http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Splitter.html
关于你的问题,这是一个代码片段:
Iterable parts = Splitter.on('-').split(issueField);
使用Splitter而不是String.split的一些额外奖励:
- 返回的
Iterable
是懒惰的。 换句话说,在迭代它之前,它实际上不会完成工作。 - 它不会拆分所有令牌并将它们存储在内存中。 您可以迭代一个巨大的字符串,逐个令牌,不会增加内存使用量。
不使用Splitter的唯一原因是你不想在你的类路径中包含Guava。
您也可以使用java.util.StringTokenizer类。 虽然String.split是更容易和适合您的问题的方式。