【问题标题】:How to use NSRange or NSScanner in iOS如何在 iOS 中使用 NSRange 或 NSScanner
【发布时间】:2012-05-26 15:22:59
【问题描述】:

我有一个类似的字符串:

1 this is my first text 2 his is my second 3 this is my third 4 this is my forth etc etc..

每个句子都在数字characters like 1 2 3 4 etc之间

当我点击第一句话时,它需要剖析它并将其复制到剪贴板或其他东西中。我们如何使用 NSScanner 或 NSRange 来计算字符串大小或识别数字字符之间的字符串。

self.multiPageView.text =combined;组合包含上面的文本,所以当我点击第一个句子时,它需要选择并显示一个符合被点击句子的 UIAlertView 是第一个句子,如何通过点击那个句子来检测数字字符之间的句子,比如 ibook。我正在使用核心文本来显示这些类型的文本。

【问题讨论】:

  • 我想评论一下,这将有助于从 SO 社区获得更好的支持,您可以查看 SO 用于正确格式化您的问题的 Markdown 语法。

标签: iphone regex nsstring nsattributedstring nsregularexpression


【解决方案1】:

使用NSScanner点赞-

NSString *yourString = @"1 this is my first text 2 his is my second 3 this is my third 4 this is my forth";

NSScanner *scanner = [NSScanner scannerWithString:yourString];

[scanner scanUpToString:@"1" intoString:nil];
if (![scanner isAtEnd]) {
    [scanner scanUpToString:@"1" intoString:nil];
    NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString:@"2"];
    [scanner scanUpToCharactersFromSet:charset intoString:&yourString];
}

【讨论】:

  • 我有一个疑问,我正在通过 coretextr 渲染这些文本,那么如何检测我触摸了第一句或第二句。有没有办法突出显示或弹出包含消息的警报视图这是第一句话。?
  • 您需要根据您的实际问题以及您想要实现的目标重新构建问题
  • 那么是不是就不能知道是哪个句子被敲击了?
  • 我不说了,你需要定义你的需求吗?
【解决方案2】:

试试这个,你会得到一个数组,其中会有所有分隔的字符串。你必须用你正在使用的数字填充集合。

    NSString *str1 = @"1 this is my first text 2 his is my second 3 this is my third 4 this is my forth";
    NSMutableCharacterSet *set = [NSMutableCharacterSet controlCharacterSet];
    [set addCharactersInString:@"1"];
    [set addCharactersInString:@"2"];
    [set addCharactersInString:@"3"];
    [set addCharactersInString:@"4"];
    NSArray *arr = [str1 componentsSeparatedByCharactersInSet:set];

【讨论】:

  • haii,1 2 3 4 是动态的,那我怎么写这段代码呢?实际代码是 self.multiPageView.text =combined;公司包含这些文本。组合是动态的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-09
  • 2015-07-02
  • 1970-01-01
  • 2011-04-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多