如何将字符串中每个句子的首字母大写?我应该使用 .capitalisedString
吗?
如何将字符串中每个句子的首字母大写?我应该使用 .capitalisedString
吗?
您可以使用NSStringEnumerationOptions.BySentences
按句子枚举String
。但是,它仅在第一个字符大写时才检测“句子”。
因此,这可能不完美,但您可以尝试以下方法:
import Foundation
let text:String = "lorem ipsum dolor elit, sed aliqfuas. imfs enim ad veniam, quis nostrud consequat? duis aute irure dolor in pariatur."
var result = ""
text.uppercaseString.enumerateSubstringsInRange(text.startIndex..<text.endIndex, options: .BySentences) { (_, range, _, _) in
// ^^^^^^^^^^^^^^^^ enumerate all upper cased string
var substring = text[range] // retrieve substring from original string
let first = substring.removeAtIndex(substring.startIndex)
result += String(first).uppercaseString + substring
}
// result -> "Lorem ipsum dolor elit, sed aliqfuas. Imfs enim ad veniam, quis nostrud consequat? Duis aute irure dolor in pariatur."
var _
?- 最后两行可以稍微简化一下,变成result += String(first).uppercaseString + substring
。 - Martin Rpublic static void main(String[] args) {
String a = "this is.a good boy";
String[] dot = a.split("\\.");
int i = 0;
String output = "";
while (i < dot.length) {
dot[i] = String.valueOf(dot[i].charAt(0)).toUpperCase()
+ dot[i].substring(1);
output = output + dot[i] + ".";
i++;
}
System.out.println(output);
}