ios - significa - traducir al español
Cómo capitalizar cada palabra en una cadena usando Swift iOS (7)
¿Estás buscando
capitalizedString
Discusión
Una cadena con el primer carácter en cada palabra cambió a su valor en mayúscula correspondiente, y todos los caracteres restantes se configuraron en sus valores en minúscula correspondientes.
y / o
capitalizedStringWithLocale(_:)
Devuelve una representación en mayúsculas del receptor utilizando la configuración regional especificada.
Para las cadenas presentadas a los usuarios, pase la configuración regional actual ([NSLocale currentLocale]). Para usar la configuración regional del sistema, pase nil.
¿Existe una función para capitalizar cada palabra en una cadena o es un proceso manual?
Por ejemplo, "Bob es alto" y me gustaría "Bob es alto"
Seguramente hay algo y ninguna de las respuestas de Swift IOS que he encontrado parecía cubrir esto.
Desde iOS 9, está disponible una función de mayúsculas localizada, ya que las letras mayúsculas pueden diferir en los idiomas.
if #available(iOS 9.0, *) {
"istanbul".localizedCapitalizedString
// In Turkish: "İstanbul"
}
Esto es lo que se me ocurrió que parece funcionar, pero estoy abierto a cualquier cosa que sea mejor.
func firstCharacterUpperCase(sentenceToCap:String) -> String {
//break it into an array by delimiting the sentence using a space
var breakupSentence = sentenceToCap.componentsSeparatedByString(" ")
var newSentence = ""
//Loop the array and concatinate the capitalized word into a variable.
for wordInSentence in breakupSentence {
newSentence = "/(newSentence) /(wordInSentence.capitalizedString)"
}
// send it back up.
return newSentence
}
o si quiero usar esto como una extensión de la clase de cadena.
extension String {
var capitalizeEachWord:String {
//break it into an array by delimiting the sentence using a space
var breakupSentence = self.componentsSeparatedByString(" ")
var newSentence = ""
//Loop the array and concatinate the capitalized word into a variable.
for wordInSentence in breakupSentence {
newSentence = "/(newSentence) /(wordInSentence.capitalizedString)"
}
// send it back up.
return newSentence
}
}
De nuevo, cualquier cosa mejor es bienvenida.
Hay una función incorporada para eso
nameOfString.capitalizedString
Esto capitalizará cada palabra de cadena. Para poner en mayúscula solo la primera letra que puede usar:
nameOfString.replaceRange(nameOfString.startIndex...nameOfString.startIndex, with: String(nameOfString[nameOfString.startIndex]).capitalizedString)
Hilo antiguo
Para
Swift 3
se ha cambiado a
capitalized
.
Discusión
Esta propiedad realiza el mapeo canónico (no localizado). Es adecuado para operaciones de programación que requieren resultados estables sin depender de la configuración regional actual. Una cadena en mayúscula es una cadena con el primer carácter de cada palabra cambiado a su valor en mayúscula correspondiente, y todos los caracteres restantes configurados en sus valores en minúscula correspondientes. Una "palabra" es cualquier secuencia de caracteres delimitada por espacios, tabulaciones o terminadores de línea (enumerados en getLineStart (_: end: contentsEnd: for :)). No se considera alguna puntuación común delimitadora de palabras, por lo que esta propiedad generalmente no produce los resultados deseados para cadenas de varias palabras. No se garantiza que las transformaciones de mayúsculas y minúsculas sean simétricas o que produzcan cadenas de la misma longitud que los originales. Ver en minúsculas para un ejemplo.
Swift 3:
var lowercased = "hello there"
var stringCapitalized = lowercased.capitalized
//prints: "Hello There"
Un ejemplo de la respuesta proporcionada anteriormente.
var sentenceToCap = "this is a sentence."
println(sentenceToCap.capitalizedStringWithLocale(NSLocale.currentLocale()) )
El resultado final es una cadena "Esto es una oración"