Objective-C中的字符串操作
掌握了如何在Objective-C中获取和写入变量,现在是学习如何使用它们做一些更有用的事情的时候了!现在,我主要是想弄清楚字符串操作是如何工作的。特别是,我正在寻找以下函数:Objective-C中的字符串操作,objective-c,string,Objective C,String,掌握了如何在Objective-C中获取和写入变量,现在是学习如何使用它们做一些更有用的事情的时候了!现在,我主要是想弄清楚字符串操作是如何工作的。特别是,我正在寻找以下函数: 串联 查找字符串的长度(特别是多字节/UTF-8字符串;我对东亚语言做了大量工作) 仅拉动字符串的一部分(例如,从“abcfoobarxyz”中拉出“foobar”) 在字符串中搜索(请参见上面的示例) 更改大小写(大写、小写、标题,如果操作简单) 分解/内爆字符串(例如,从逗号分隔的列表中创建和获取信息) 在字符串中
- 串联
- 查找字符串的长度(特别是多字节/UTF-8字符串;我对东亚语言做了大量工作)
- 仅拉动字符串的一部分(例如,从“abcfoobarxyz”中拉出“foobar”)
- 在字符串中搜索(请参见上面的示例)
- 更改大小写(大写、小写、标题,如果操作简单)
- 分解/内爆字符串(例如,从逗号分隔的列表中创建和获取信息)
- 在字符串中查找/替换
- 可能可用的任何其他一般有用的字符串函数
- (NSString*) concatenateString:(NSString*)stringA withString:(NSString*)stringB
{
NSString *finalString = [NSString stringWithFormat:@"%@%@", stringA,
stringB];
return finalString;
}
// The advantage of this method is that it is simple to put text between the
// two strings (e.g. Put a "-" replace %@%@ by %@ - %@ and that will put a
// dash between stringA and stringB
字符串长度:
- (int) stringLength:(NSString*)string
{
return [string length];
//Not sure for east-asian languages, but works fine usually
}
从字符串中删除文本:
- (NSString*)remove:(NSString*)textToRemove fromString:(NSString*)input
{
return [input stringByReplacingOccurrencesOfString:textToRemove
withString:@""];
}
大写/小写/标题:
- (NSString*)uppercase:(NSString*)stringToUppercase
{
return [stringToUppercase uppercaseString];
}
- (NSString*)lowercase:(NSString*)stringToLowercase
{
return [stringToLowercase lowercaseString];
}
- (NSString*)titlecase:(NSString*)stringToTitleCase
{
return [stringToTitleCase capitalizedString];
}
查找/替换
- (NSString*)findInString:(NSString*)string
replaceWithString:(NSString*)stringToReplaceWith
{
return [input stringByReplacingOccurrencesOfString:string
withString:stringToReplaceWith];
}
我希望这有帮助
PS:别忘了检查文档,谷歌是你的朋友。祝你好运这里有一个“标题案例”例行公事:
- (NSString *) stringToTitleCase: (NSString *) inString
{
NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)];
NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)];
return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest];
}
谢谢!我一直在努力阅读文档,但有时会让我感到困惑,而剖析代码摘录以了解其工作原理通常不是问题。没问题。请记住,这些是单独的函数。因此,您可以并且应该在代码中直接使用括号(例如,如果您有一个hello world程序:
-(iAction)helloButtonClicked:(id)sender{[textField setStringValue:[@“hello world”lowercaseString]];}
Have fungerat!你说得对,谷歌是我的朋友——它帮助我在StackOverflow上找到东西!对于标题大小写,请检查这个SO答案(NSString*titleCaseString=[yourString capitalizedString])串联滥用了格式字符串,你只需返回[stringA stringByAppendingString:stringB]是的,但是titlecase应该把每个单词的第一个字母都大写,所以你必须分析字符串中的单独单词等。在这种情况下,你可以使用NSString大写字符串阅读文档?
- (NSString *) stringToTitleCase: (NSString *) inString
{
NSString *firstLetter = [inString substringWithRange: NSMakeRange(0, 1)];
NSString *theRest = [inString substringWithRange: NSMakeRange(1, [inString length]-1)];
return [NSString stringWithFormat: @"%@%@", [firstLetter uppercaseString], theRest];
}