Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C中的字符串操作_Objective C_String - Fatal编程技术网

Objective-C中的字符串操作

Objective-C中的字符串操作,objective-c,string,Objective C,String,掌握了如何在Objective-C中获取和写入变量,现在是学习如何使用它们做一些更有用的事情的时候了!现在,我主要是想弄清楚字符串操作是如何工作的。特别是,我正在寻找以下函数: 串联 查找字符串的长度(特别是多字节/UTF-8字符串;我对东亚语言做了大量工作) 仅拉动字符串的一部分(例如,从“abcfoobarxyz”中拉出“foobar”) 在字符串中搜索(请参见上面的示例) 更改大小写(大写、小写、标题,如果操作简单) 分解/内爆字符串(例如,从逗号分隔的列表中创建和获取信息) 在字符串中

掌握了如何在Objective-C中获取和写入变量,现在是学习如何使用它们做一些更有用的事情的时候了!现在,我主要是想弄清楚字符串操作是如何工作的。特别是,我正在寻找以下函数:

  • 串联
  • 查找字符串的长度(特别是多字节/UTF-8字符串;我对东亚语言做了大量工作)
  • 仅拉动字符串的一部分(例如,从“abcfoobarxyz”中拉出“foobar”)
  • 在字符串中搜索(请参见上面的示例)
  • 更改大小写(大写、小写、标题,如果操作简单)
  • 分解/内爆字符串(例如,从逗号分隔的列表中创建和获取信息)
  • 在字符串中查找/替换
  • 可能可用的任何其他一般有用的字符串函数

在Xcode中,按CMD-SHIFT-D并搜索NSString.h、NSMutableString和/或NSScanner

打开这些文件,查看您可以使用NSString执行的所有操作。这应该告诉你有什么功能

顺便说一下,这应该成为您的第二天性,因为您将经常使用它来了解函数和/或委托是什么。

示例: 串联:

- (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];
}