- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用regex
或Stringtokenizer
来分隔此字符串中的作者和标题是否更好:
William Faulkner - 'Light In August'
这是最简单的正则表达式
吗?
Pattern pattern = Pattern.compile("^\\s*([^-]+)-.*$");
Matcher matcher = pattern.matcher("William Faulkner - 'Light In August'");
String author = matcher.group(1).trim();
String bookTitle = matcher.group(2).trim();
这是否太过分了,或者是否有更简单的方法可以使用Stringtokenizer
来做到这一点?
基本上,我正在寻找最透明和可维护的解决方案,因为我对正则表达式
没有很好的理解,并且获得了上述解决方案的帮助。
最佳答案
您对输入有多少控制权?您能否保证作者和标题始终由 "- "
(空格、破折号和空格)分隔?您确定作者不会包含"- "
吗?等等。
如果输入相当严格,那么您可以简单地使用 String#split()
,这应该会让你非常清楚地知道你在做什么。 不要使用 StringTokenizer (source):
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.
Mark Byers' answer向您展示如何使用 split()
。
但是,如果您必须担心输入中的更多变化(例如,破折号周围的空白数量是否可变或根本不存在?),那么使用正则表达式将变得简洁明了。权衡是代码的可读性和意图的清晰度。
关于java - 最好使用正则表达式或 Stringtokenizer 在此 : William Faulkner - 'Light In August' 中查找作者和书名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3962670/
我正在实现 lock-free queue Anthony Williams 在“C++ Concurrency in Action”中描述的内容。我将其作为 libcds 的新容器进行测试.弹出和推
请问Esau-Williams 算法在哪些情况下可能有用?我知道它是用来解决CMST问题的,但是我找不到任何可能出现CMST问题的情况。 最佳答案 根据 Wikipedia ,“CMST问题在网络设计
我最近正在开发一个 android 应用程序,我需要使用图表显示一些统计信息。我搜索了 android-arsenal.com,发现了一堆图表库,包括我选择的 William 图表,因为它看起来构建得
我正在尝试将 William Charts 用于我的 Android Studio 项目,但似乎无法导入它。我从 github 下载了 WilliamChart-master zip ,并尝试导入它。
在研究mysql项目时,我未能将JOIN的知识应用到实际情况中,查询本身的逻辑存在问题。 我的目标是进行一个需要 6 个表进行交互的查询。 第一个连接表批处理: CREATE TABLE `books
早上好! 对于无线应用程序,我需要实现各种 CRC 计算。根据规范,CRC 计算应作为移位寄存器实现。 See EPC Spec Ross N. Williams 有一个名为“CRC 错误检测算法的无
假设我正在使用 R ( Bretz et al. (2011) Multiple Comparisons with R. Chapman & Hall/CRC) 的 multcomp 包进行剂量 re
使用regex或Stringtokenizer来分隔此字符串中的作者和标题是否更好: William Faulkner - 'Light In August' 这是最简单的正则表达式吗? Patter
我需要将这样的学生列表分为ID,姓名和分数。这是一个练习,因此不允许使用字符串,只能使用char 0001 William Bob 8.5 0034 Howard Stark 9.5 0069 Nat
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!