У меня есть строка, и я хочу сократить первое слово и сделать это следующим образом; Есть ли способ для этого?swift - String: Сократите первое слово
var name = "John Doe"
---> «J. Doe»
Спасибо,
У меня есть строка, и я хочу сократить первое слово и сделать это следующим образом; Есть ли способ для этого?swift - String: Сократите первое слово
var name = "John Doe"
---> «J. Doe»
Спасибо,
Вот простая функция для вас:
var name = "John Doe"
func updateName(name: String) -> String {
let firstName: String = name.componentsSeparatedByString(" ").first!.uppercaseString as String
let secondName: String = name.componentsSeparatedByString(" ")[1].uppercaseString as String
let firstLetter = firstName.startIndex
let finalLetter = firstName[firstLetter]
return "\(finalLetter). \(secondName)"
}
updateName(name) // "J. doe"
насчет попробовать что-то вроде этого, раскол в пространстве, а затем захватить первый символ первого массива. Это аккуратный трюк, поскольку строка представляет собой массив символов.
var name = "First Last"
var fullNameArr = split(fullName) {$0 == " "}
var shortName = "\(fullNameArr[0][0]). \(fullNameArr[1])"
Вы можете использовать компоненты, разделенные методом ByString.
extension String {
var shortName: String {
let components = componentsSeparatedByString(" ").map{$0.capitalizedString}
return String(components.first![startIndex]) + ". " + components.last!
}
}
println("John Doe".shortName) // "J. Doe"
println("leonardo savio dabus".shortName) // "L. Dabus"
или как функция:
func shortName(fullName: String) -> String {
let components = fullName.componentsSeparatedByString(" ").map{$0.capitalizedString}
return String(components.first![fullName.startIndex]) + ". " + components.last!
}
let short = shortName("John Doe") // "J. Doe"
ручки средней, двойной средний, имя и т.д.
var name = "John Aby Doe"
var fullNameArr = split(name) {$0 == " "}
if let first = fullNameArr.first {
var shortName = "\(first[first.startIndex])."
for part in fullNameArr {
if part != first {
shortName += " \(part)"
}
}
println(shortName)
}
Это может быть альтернативный подход. Спасибо
var name = "John Doe"
var FirstPart : String = name.componentsSeparatedByString(" ")[0] as String
var secondPart : String = name.componentsSeparatedByString(" ")[1] as String
var firstLetter = FirstPart[FirstPart.startIndex]
var shortName = "\(firstLetter). \(secondPart)"
print(shortName) // prints J. Doe
Спасибо всем, с моим ограниченным опытом программирования Я совмещаю то, что вы все мне даете;
let name = authorname
let wordsArray = name.componentsSeparatedByString(" ")
var firstWord = wordsArray[0]
var secondWord = wordsArray[1]
var firstChar = Array(firstWord)[0]
var shortName = "\(firstChar). \(secondWord)"
self.title = shortName
Любые попытки, которые вы хотели бы поделиться? – zneak
Я преобразовал строку в массив, а затем выбираю первое слово. Но я не знаю, как можно манипулировать буквами первых слов. ' пусть имя = "John Doe" пусть wordsArray = name.componentsSeparatedByString (»«) вар firstword = wordsArray [1] ' –