我正在尝试替换字符串的第一个字符。使用this answer,我能够将所有当前字符替换为我想要的字符,但我真正需要的是仅在字符开头处替换该字符。
例如,将c替换为t:
原始字符串:杰克很酷 新刺痛:杰克是工具
我当前的代码:
let aString: String = "jack is cool"
let toArray: Array = aString.componentsSeparatedByString(" ")
let newString: String = aString.stringByReplacingOccurrencesOfString("c", withString: "t", options: NSStringCompareOptions.LiteralSearch, range: nil)
这将打印为:
"jatk is tool"
我假设我必须对newString中的range属性做一些事情。
答案 0 :(得分:2)
我会使用regex
。 \\b
称为单词边界,它在单词字符和非单词字符之间匹配。您也可以使用负面的lookbehind而不是像\\b
(?<!\\S)c
var regex:NSRegularExpression = NSRegularExpression(pattern: "\\bc", options: NSRegularExpressionOptions.CaseInsensitive, error: &ierror)!
var modString = regex.stringByReplacingMatchesInString(myString, options: nil, range: NSMakeRange(0, stringlength), withTemplate: "t")
答案 1 :(得分:0)
var aString ='jack is cool'; var newString = aString.replace('c','t');
答案 2 :(得分:0)
var a
var oldString = 'Jack is cool';
var newString = oldString.split(' ');
var x = newString[newString.indexOf('cool')].toString();
x = x.replace('c','t');
newString.splice(newString.indexOf('cool'),1,x);
newString = newString.join(' ').toString();
alert(newString);
答案 3 :(得分:0)
您可以在startIndex中定义开始和结束的范围,以确保它仅替换字符串第一个字符的出现位置:
let coolString = "Cool"
let newString = coolString.stringByReplacingOccurrencesOfString("C", withString: "T", options: [], range: coolString.startIndex...coolString.startIndex)
您可以使用String方法replace()来仅替换String
的第一个字符var str = "Cool"
str.replaceRange(str.startIndex...str.startIndex, with: "T")
print(str) // "Tool"
仅将其应用于最后一个词:
var str = "Jack is Cool"
var words = str.componentsSeparatedByString(" ")
if !words.isEmpty {
if !words[words.count-1].isEmpty {
words[words.count-1].replaceRange(str.startIndex...str.startIndex, with: "T")
print( words.last!) // "Tool\n"
}
}
let sentence = words.joinWithSeparator(" ") // "Jack is Tool"