1

假设我的文件包含数百行大写字母。我应该如何将每行上的单词更改为小写,只有第一个字母保持大写?

 TEXT ON FIST LINE
 TEXT ON SECOND LINE
 TEXT ON THIRD LINE

 Text On Fist Line
 Text On Second Line
 Text On Third Line

我在想这样的事情

 s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase()

但是使用 StringBuilder 可能会更聪明,甚至可能有比 StringBuilder 更好的东西。

4

2 回答 2

2

如果您不介意使用 apace commons,您可以使用WordUtils.capitalize()WordUtils.capitalizeFully()

于 2011-06-07T13:29:39.167 回答
0

四个选项(实际上是 5 个,但一个是另一个的变体):

  1. 使用已经处理句子类型大写的库
  2. 拆分句子,然后将每个单词的第一个字母大写
  3. 空格 + 字母的正则表达式,并用大写版本替换模式的结尾
  4. 遍历字符串并在到达空格后大写

#5 是 #4 的变体,仍在字符串中运行,但以二进制形式运行。这并不难,但它会根据这是 ASCII 还是 Unicode 而变化,并且可能会因字符集而变化。

如果您使用自定义例程执行此操作,请将其设置为可重用类,因为我几乎可以保证您会再次使用它。

于 2011-06-07T13:34:49.263 回答