PPLable 过滤标点方法

2024-09-04 17:32
文章标签 方法 过滤 标点 pplable

本文主要是介绍PPLable 过滤标点方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


- (void)highlightWordContainingCharacterAtIndex:(CFIndex)charIndex {if (charIndex==NSNotFound) {//user did not click on any word[self removeHighlight];return;}NSString* string = self.label.text;
#pragma mark - 检测单词两侧的空格//compute the positions of space characters next to the charIndexNSRange end = [string rangeOfString:@" " options:0 range:NSMakeRange(charIndex, string.length - charIndex)];NSRange front = [string rangeOfString:@" " options:NSBackwardsSearch range:NSMakeRange(0, charIndex)];if (front.location == NSNotFound) {front.location = 0; //first word was selected}if (end.location == NSNotFound) {end.location = string.length-1; //last word was selected}NSRange wordRange = NSMakeRange(front.location, end.location-front.location);if (front.location!=0) { //fix trimmingwordRange.location += 1;wordRange.length -= 1;}
/****************************///获得单词NSString *word = [string substringWithRange:wordRange];NSLog(@"word %@",word);NSString *last = [word substringFromIndex:word.length - 1];NSString *first= [word substringToIndex:1];NSLog(@"last %@",last);//过滤标点符号if ([last isEqualToString:@","]|| [last isEqualToString:@"."]|| [last isEqualToString:@"?"]|| [last isEqualToString:@";"]|| [last isEqualToString:@"'"]|| [last isEqualToString:@"\""]){word = [word substringToIndex:word.length - 1];}if ([first isEqualToString:@","]|| [first isEqualToString:@"."]|| [first isEqualToString:@"?"]|| [first isEqualToString:@";"]|| [first isEqualToString:@"'"]|| [first isEqualToString:@"\""]){word = [word substringFromIndex:1];}word = [word lowercaseString];NSLog(@"word %@",word);
/****************************/if (wordRange.location == self.highlightedRange.location) {return; //this word is already highlighted}else {[self removeHighlight]; //remove highlight on previously selected word}self.highlightedRange = wordRange;//highlight selected wordNSMutableAttributedString* attributedString = [self.label.attributedText mutableCopy];[attributedString addAttribute:NSBackgroundColorAttributeName value:[UIColor redColor] range:wordRange];self.label.attributedText = attributedString;
}

这篇关于PPLable 过滤标点方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136569

相关文章

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

mss32.dll文件丢失怎么办? 电脑提示mss32.dll丢失的多种修复方法

《mss32.dll文件丢失怎么办?电脑提示mss32.dll丢失的多种修复方法》最近,很多电脑用户可能遇到了mss32.dll文件丢失的问题,导致一些应用程序无法正常启动,那么,如何修复这个问题呢... 在电脑常年累月的使用过程中,偶尔会遇到一些问题令人头疼。像是某个程序尝试运行时,系统突然弹出一个错误提

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

python中字符串拼接的几种方法及优缺点对比详解

《python中字符串拼接的几种方法及优缺点对比详解》在Python中,字符串拼接是常见的操作,Python提供了多种方法来拼接字符串,每种方法有其优缺点和适用场景,以下是几种常见的字符串拼接方法,需... 目录1. 使用 + 运算符示例:优缺点:2. 使用&nbsjsp;join() 方法示例:优缺点:3

java streamfilter list 过滤的实现

《javastreamfilterlist过滤的实现》JavaStreamAPI中的filter方法是过滤List集合中元素的一个强大工具,可以轻松地根据自定义条件筛选出符合要求的元素,本文就来... 目录1. 创建一个示例List2. 使用Stream的filter方法进行过滤3. 自定义过滤条件1. 定

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓