Как использовать первую букву каждого предложения в строке? Должен ли я использовать .capitalisedString
?Заглавие первой буквы каждого предложения
ответ
Вы можете перечислить String
за предложениями с помощью NSStringEnumerationOptions.BySentences
. Но он обнаруживает «предложение» только в том случае, если первый символ имеет верхний регистр.
Итак, Это не может быть совершенным, но вы можете попробовать это:
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."
Он записывает первую букву в строке, а остальные в начале предложения по-прежнему строчные. –
См. Мой обновленный ответ – rintaro
(+1), но: Почему 'var _'? - Две последние строки могут быть упрощены до результата 'result + = String (first) .uppercaseString + substring'. –
public 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);
}
предложение может быть закончено '!', '?' И '.' слишком ... – holex
Видите ли, что вопрос о языке программирования Swift? –
Смотрите мой ответ здесь: https://stackoverflow.com/questions/2432452/how-to-capitalize-the-first -word-of-the-sentence-in-objective-c/24712107 # 24712107 –
@MaxMacLeod: не 100% дубликат. Связанный поток показывает, как загладить первый символ строки, а не каждого * предложения * в строке. –
@MaxMacLeod No. Обратите внимание, что речь идет о цепочке с несколькими предложениями. Не только одна строка. – Kirsteins