Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.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
Ios 获取多次出现的字符串之间的字符串_Ios_Objective C_Nsstring - Fatal编程技术网

Ios 获取多次出现的字符串之间的字符串

Ios 获取多次出现的字符串之间的字符串,ios,objective-c,nsstring,Ios,Objective C,Nsstring,我发现了很多例子,但没有一个能说明如何处理该字符串的多次出现。例如,我有这样的字符串 “嗨,我是用户。我今年20岁岁,住在某个国家” 背后的想法是,我希望在UITextField中链接该字符串的每个匹配项,并从字符串中删除标记。我也有两种类型的标签,一种应该显示超链接,另一种应该弹出一些文字描述的单词或短语点击警报视图 编辑: 找到了一个非常好的工作解决方案,通过在文本中提供的标记之间使用属性字符串更改文本内容来扩展此逻辑。链接。@Aleksandar试试这个。。它对我有用 NSString *

我发现了很多例子,但没有一个能说明如何处理该字符串的多次出现。例如,我有这样的字符串

“嗨,我是
用户
。我今年20岁
,住在
某个国家

背后的想法是,我希望在
UITextField
中链接该字符串的每个匹配项,并从字符串中删除标记。我也有两种类型的标签,一种应该显示超链接,另一种应该弹出一些文字描述的单词或短语点击警报视图

编辑:


找到了一个非常好的工作解决方案,通过在文本中提供的标记之间使用属性字符串更改文本内容来扩展此逻辑。链接。

@Aleksandar试试这个。。它对我有用

NSString *serverOutput = @"Hi, I am <id>User</id>. I am 20 <id>years old</id>, and live in <id>some country</id>.";
    if([serverOutput containsString:@"</id>"])
    {
        NSArray *arrSeparate = [serverOutput componentsSeparatedByString:@"</id>"];
        NSString *output = @"";
        for(int i=0; i<arrSeparate.count; i++)
        {
            if([[arrSeparate objectAtIndex:i] containsString:@"<id>"])
            {
                NSArray *arrTest = [[arrSeparate objectAtIndex:i] componentsSeparatedByString:@"<id>"];
                if(output.length < 1)
                    output = [arrTest objectAtIndex:1];
                else
                    output = [NSString stringWithFormat:@"%@\n%@",output,[arrTest objectAtIndex:1]];
            }
        }
        serverOutput = output;
    }
    NSLog(@"%@", serverOutput);
NSString*serverOutput=@“嗨,我是用户。我今年20岁,住在某个国家。”;
if([serverOutput containssString:@”“)
{
NSArray*arrsepolve=[serverOutput Components由字符串分隔:@”“];
NSString*输出=@“”;

对于(inti=0;i@Aleksandar试试这个..它对我有用

NSString *serverOutput = @"Hi, I am <id>User</id>. I am 20 <id>years old</id>, and live in <id>some country</id>.";
    if([serverOutput containsString:@"</id>"])
    {
        NSArray *arrSeparate = [serverOutput componentsSeparatedByString:@"</id>"];
        NSString *output = @"";
        for(int i=0; i<arrSeparate.count; i++)
        {
            if([[arrSeparate objectAtIndex:i] containsString:@"<id>"])
            {
                NSArray *arrTest = [[arrSeparate objectAtIndex:i] componentsSeparatedByString:@"<id>"];
                if(output.length < 1)
                    output = [arrTest objectAtIndex:1];
                else
                    output = [NSString stringWithFormat:@"%@\n%@",output,[arrTest objectAtIndex:1]];
            }
        }
        serverOutput = output;
    }
    NSLog(@"%@", serverOutput);
NSString*serverOutput=@“嗨,我是用户。我今年20岁,住在某个国家。”;
if([serverOutput containssString:@”“)
{
NSArray*arrsepolve=[serverOutput Components由字符串分隔:@”“];
NSString*输出=@“”;

对于(inti=0;i请查看此项,我希望这能为您提供关键字存在的所有范围

NSString *serverOutput = @"Hi, I am <id>User</id>. I am 20 <id>years old</id>, and live in <id>some country</id>";
NSUInteger count = 0, length = [serverOutput length];
NSRange startRange = NSMakeRange(0, length);
NSRange endRange = NSMakeRange(0, length);
while(startRange.location != NSNotFound)
{
    startRange = [serverOutput rangeOfString: @"<id>" options:0 range:startRange];
    if(startRange.location != NSNotFound)
    {
        endRange = [serverOutput rangeOfString: @"</id>" options:0 range:endRange];
        startRange = NSMakeRange(startRange.location + startRange.length, length - (startRange.location + startRange.length));
        endRange = NSMakeRange(endRange.location + endRange.length, length - (endRange.location + endRange.length));
        count++;
    }
}
NSString*serverOutput=@“嗨,我是用户,我今年20岁,住在某个国家”;
NSU整数计数=0,长度=[serverOutput length];
NSRange startRange=NSMakeRange(0,长度);
NSRange endRange=NSMakeRange(0,长度);
while(startRange.location!=NSNotFound)
{
startRange=[serverOutput rangeOfString:@”选项:0范围:startRange];
if(startRange.location!=NSNotFound)
{
endRange=[serverOutput rangeOfString:@”选项:0范围:endRange];
startRange=NSMakeRange(startRange.location+startRange.length,length-(startRange.location+startRange.length));
endRange=NSMakeRange(endRange.location+endRange.length,length-(endRange.location+endRange.length));
计数++;
}
}
startRange是标记开始的范围,endRange是标记开始的范围


您可以更改范围、位置、创建属性字符串并添加超链接,因为字符串的范围对您可用。

请查看此内容,我希望这可以为您提供关键字所在的所有范围

NSString *serverOutput = @"Hi, I am <id>User</id>. I am 20 <id>years old</id>, and live in <id>some country</id>";
NSUInteger count = 0, length = [serverOutput length];
NSRange startRange = NSMakeRange(0, length);
NSRange endRange = NSMakeRange(0, length);
while(startRange.location != NSNotFound)
{
    startRange = [serverOutput rangeOfString: @"<id>" options:0 range:startRange];
    if(startRange.location != NSNotFound)
    {
        endRange = [serverOutput rangeOfString: @"</id>" options:0 range:endRange];
        startRange = NSMakeRange(startRange.location + startRange.length, length - (startRange.location + startRange.length));
        endRange = NSMakeRange(endRange.location + endRange.length, length - (endRange.location + endRange.length));
        count++;
    }
}
NSString*serverOutput=@“嗨,我是用户,我今年20岁,住在某个国家”;
NSU整数计数=0,长度=[serverOutput length];
NSRange startRange=NSMakeRange(0,长度);
NSRange endRange=NSMakeRange(0,长度);
while(startRange.location!=NSNotFound)
{
startRange=[serverOutput rangeOfString:@”选项:0范围:startRange];
if(startRange.location!=NSNotFound)
{
endRange=[serverOutput rangeOfString:@”选项:0范围:endRange];
startRange=NSMakeRange(startRange.location+startRange.length,length-(startRange.location+startRange.length));
endRange=NSMakeRange(endRange.location+endRange.length,length-(endRange.location+endRange.length));
计数++;
}
}
startRange是标记开始的范围,endRange是标记开始的范围


您可以更改范围、位置、创建属性字符串和添加超链接,因为字符串的范围对您可用。

字符串是常量还是文本会变化?服务器端生成字符串,我得到了该字符串的列表。大约有100个项目显示有超链接。字符串是常量还是文本会变化?服务器端生成我得到了一个字符串列表。大约有100个项目显示了超链接。是的,这对我也很有用。我可以从那里工作来实现我所需要的。你和@gurmandeep都给出了一个有效的解决方案。是的,这对我也很有效。我可以从那里工作来实现我所需要的。你和@gurmandeep都给出了一个有效的解决方案。哈py编码配对快乐编码配对