处理一串字符串的关键字

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; min-height: 25.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #cf8724 }
p.p4 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #e82300 }
p.p5 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; min-height: 13.0px }
p.p6 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000 }
p.p7 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #cf8724 }
p.p8 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px "PingFang SC"; color: #cf8724 }
p.p9 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #36568a }
p.p10 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #36568a; min-height: 13.0px }
p.p11 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #c35900 }
p.p12 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #587ea8 }
p.p13 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC"; color: #36568a }
span.s1 { }
span.s2 { color: #777897 }
span.s3 { color: #36568a }
span.s4 { font: 11.0px "PingFang SC" }
span.s5 { color: #c35900 }
span.s6 { font: 11.0px Menlo }
span.s7 { color: #587ea8 }
span.s8 { color: #e82300 }
span.s9 { color: #000000 }
span.s10 { font: 11.0px Menlo; color: #000000 }

最近做项目遇到一种情况,就是一段文字有一个或都两个关键字是比较特殊,字号或者颜色是有点区别,所以自己也尝试扩展一个NSString类,下面的代码主要是针对项目而言:

具体展示:

//  NSString+Extension.h

#import <Foundation/Foundation.h>

#import <UIKit/UIKit.h>

@interface NSString (Extension)

/** 两个string同种颜色不同字号 */

+ (NSMutableAttributedString *)ym_setAttribute:(NSString *)firstStr secondString:(NSString *)secondStr formerFont:(UIFont *)firstFont latterFont:(UIFont *)secondFont color:(UIColor *)color;

/** 两个string不同颜色不同字号 */

+ (NSMutableAttributedString *)ym_setattributes:(NSString *)firstStr secondString:(NSString *)secondStr formerFont:(UIFont *)firstFont latterFont:(UIFont *)secondFont firstColor:(UIColor *)firstColor secondColor:(UIColor *)secondColor;

/** 两个关键字同颜色同字号 */

+ (NSMutableAttributedString *)ym_setAttributes:(NSString *)normalStr normalFont:(UIFont *)normalFont normalColor:(UIColor *)normalColor firstSpecialStr:(NSString *)firstSpecialStr : (NSString *)secondSpecialStr specialFont:(UIFont *)specialFont specialColor:(UIColor *)specialColor;

/** 两个关键字不同颜色不字号 */

+ (NSMutableAttributedString *)ym_setAttributes:(NSString *)normalStr normalFont:(UIFont *)normalFont normalColor:(UIColor *)normalColor firstSpecialStr:(NSString *)firstSpecialStr : (NSString *)secondSpecialStr firstSpecialFont:(UIFont *)firstSpecialFont firstSpecialColor:(UIColor *)firstSpecialColor secondSpecialFont:(UIFont *)secondSpecialFont secondSpecialColor:(UIColor *)secondSpecialColor;

@end

//  NSString+Extension.m

#import "NSString+Extension.h"

@implementation NSString (Extension)

/** 两个string同种颜色不同字号 */

+ (NSMutableAttributedString *)ym_setAttribute:(NSString *)firstStr secondString:(NSString *)secondStr formerFont:(UIFont *)firstFont latterFont:(UIFont *)secondFont color:(UIColor *)color

{

NSString *string = [NSString stringWithFormat:@"%@%@",firstStr,secondStr];

NSMutableAttributedString *attrrSting = [[NSMutableAttributedString alloc] initWithString:string];

NSUInteger firstLength = [firstStr length];

NSUInteger secondLength = [secondStr length];

[attrrSting addAttribute:NSFontAttributeName value:firstFont range:NSMakeRange(0, firstLength)];

[attrrSting addAttribute:NSFontAttributeName value:secondFont range:NSMakeRange(firstLength, secondLength)];

[attrrSting addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(0, firstLength + secondLength)];

return attrrSting;

}

/** 两个string不同颜色不同字号 */

+ (NSMutableAttributedString *)ym_setattributes:(NSString *)firstStr secondString:(NSString *)secondStr formerFont:(UIFont *)firstFont latterFont:(UIFont *)secondFont firstColor:(UIColor *)firstColor secondColor:(UIColor *)secondColor

{

NSString *string = [NSString stringWithFormat:@"%@%@",firstStr,secondStr];

NSMutableAttributedString *attrSting = [[NSMutableAttributedString alloc] initWithString:string];

NSUInteger firstLength = [firstStr length];

NSUInteger secondLength = [secondStr length];

[attrSting addAttribute:NSFontAttributeName value:firstFont range:NSMakeRange(0, firstLength)];

[attrSting addAttribute:NSFontAttributeName value:secondFont range:NSMakeRange(firstLength, secondLength)];

[attrSting addAttribute:NSForegroundColorAttributeName value:firstColor range:NSMakeRange(0, firstLength)];

[attrSting addAttribute:NSForegroundColorAttributeName value:secondColor range:NSMakeRange(firstLength, secondLength)];

return attrSting;

}

/** 两个关键字同颜色同字号 */

+ (NSMutableAttributedString *)ym_setAttributes:(NSString *)normalStr normalFont:(UIFont *)normalFont normalColor:(UIColor *)normalColor firstSpecialStr:(NSString *)firstSpecialStr :(NSString *)secondSpecialStr specialFont:(UIFont *)specialFont specialColor:(UIColor *)specialColor

{

NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:normalStr];

NSRange oneRange = [normalStr rangeOfString:firstSpecialStr];

NSRange twoRange = [normalStr rangeOfString:secondSpecialStr];

//整个字符串的颜色和字体

[attrString addAttribute:NSFontAttributeName value:normalFont range:NSMakeRange(0, normalStr.length)];

[attrString addAttribute:NSForegroundColorAttributeName value:normalColor range:NSMakeRange(0, normalStr.length)];

//第一个特殊字符串的颜色和字体

[attrString addAttribute:NSFontAttributeName value:specialFont range:oneRange];

[attrString addAttribute:NSForegroundColorAttributeName value:specialColor range:oneRange];

//第二个特殊字符串的颜色和字体

[attrString addAttribute:NSFontAttributeName value:specialFont range:twoRange];

[attrString addAttribute:NSForegroundColorAttributeName value:specialColor range:twoRange];

return attrString;

}

/** 两个关键字不同颜色不字号 */

+ (NSMutableAttributedString *)ym_setAttributes:(NSString *)normalStr normalFont:(UIFont *)normalFont normalColor:(UIColor *)normalColor firstSpecialStr:(NSString *)firstSpecialStr :(NSString *)secondSpecialStr firstSpecialFont:(UIFont *)firstSpecialFont firstSpecialColor:(UIColor *)firstSpecialColor secondSpecialFont:(UIFont *)secondSpecialFont secondSpecialColor:(UIColor *)secondSpecialColor

{

NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:normalStr];

NSRange oneRange = [normalStr rangeOfString:firstSpecialStr];

NSRange twoRange = [normalStr rangeOfString:secondSpecialStr];

//整个字符串的颜色和字体

[attr addAttribute:NSFontAttributeName value:normalFont range:NSMakeRange(0, normalStr.length)];

[attr addAttribute:NSForegroundColorAttributeName value:normalColor range:NSMakeRange(0, normalStr.length)];

//第一个特殊字符串的颜色和字体

[attr addAttribute:NSFontAttributeName value:firstSpecialFont range:oneRange];

[attr addAttribute:NSForegroundColorAttributeName value:firstSpecialColor range:oneRange];

//第二个特殊字符串的颜色和字体

[attr addAttribute:NSFontAttributeName value:secondSpecialFont range:twoRange];

[attr addAttribute:NSForegroundColorAttributeName value:secondSpecialColor range:twoRange];

return attr;

}

@end

时间: 2024-10-21 08:27:39

处理一串字符串的关键字的相关文章

串口通讯编程中涉及到的字符串处理关键字及处理字符串对应函数

一   字符串处理关键字总结 作用 关键字 比较两个字符串. StrComp 变换字符串. StrConv 大小写变换. Format, LCase, UCase 建立重复字符的字符串. Space, String 计算字符串长度. Len 设置字符串格式. Format 重排字符串. LSet, RSet 处理字符串. InStr, Left, LTrim, Mid, Right, RTrim, Trim 设置字符串比较规则. Option Compare 运用 ASCII 与 ANSI 值.

今天面试问了一道题。说一串字符串由这几个符号组成&quot;&lt;&gt;{}[]()”,写一个算法,例如如果组成方式为“&lt;&gt;{[]}{}()”这种,也就是XML格式那种则返回true。否则返回false;

原创 今天面试问了一道题.说一串字符串由这几个符号组成"<>{}[]()",写一个算法,例如如果组成方式为"<>{[]}{}()"这种,也就是XML格式那种则返回true.否则返回false: 当时没想出来, 只想到了回文数解决办法.回文数解决办法是颠倒比较,相等为true: 换xml格式当时真没想到啥好方法: 在回来的路上想到了.. .. 去重,吧临近的一组去掉,在递归调用比较去重直到最后,如果有剩下则不返回false:否则true: 代码

53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”

(1)我的错误程序: #include<iostream> #include<string.h> using namespace std; int ZhuanHuan(char); int main() { char a[100]; cout<<"please input a string: "<<endl; cin>>a; for(int i=0;i<strlen(a);i++) { ZhuanHuan(a[i]);

九度1535 重叠的最长字串 字符串哈希

题目描述: 给定两个字符串,求它们前后重叠的最长子串的长度,比如"abcde"和"cdefg"是"cde",长度为3. 输入: 输入可能包含多个测试案例. 对于每个测试案例只有一行, 包含两个字符串.字符串长度不超过1000000,仅包含字符'a'-'z'. 输出: 对应每个测试案例,输出它们前后重叠的最长子串的长度. 样例输入: abcde cdefg 样例输出: 3 #include <iostream> #include <

实现一串字符串的的某一段替换

#include<stdio.h> #include<string.h> int input_array(char *ptr) { scanf("%s",ptr); getchar(); } int str_replace(char* ptra,char *ptrb,char *ptrc) { int reta = 0,retb = 0; int i = 0,j= 0,x = 0; char* pa = NULL; char* pb = NULL; reta =

按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为“abc00000”,“12345678“,”90000000”

1 import java.util.ArrayList; 2 import java.util.Scanner; 3 4 public class Text { 5 6 @SuppressWarnings("resource") 7 public static void main(String[] args) { 8 Scanner scanner = new Scanner(System.in); 9 int M = scanner.nextInt();//M代表输入的M串字符串

Java学习(6):输入一串字符串,分别统计出其中的中英文字母,空格,数字和其他字符的个数

1 import java.util.Scanner; 2 3 /** 4 * 输入一行字符,分别统计出其中的中英文字母,空格,数字和其他字符的个数 5 * 6 * @author xcx 7 * @time 2017年7月22日上午9:08:16 8 */ 9 public class Practice7 { 10 11 public static void main(String[] args) { 12 System.out.println("请输入一串字符串,我们将统计出其中的中英文字母

正则表达式,判断一串字符串里面包含一定的形式,并解析成图片

这个事写qq表情的时候用到的,单独拿出来讲讲. 首先图片0到106张放在res里面,命名为F000到F106 如图 此时在程序里面定义一个方法 public void setData(String msg){ String str = msg; //消息具体内容 String zhengze = "f0[0-9]{2}|f10[0-7]"; //正则表达式,用来判断消息内是否有表情 try { SpannableString spannableString = ExpressionUt

Bag标签之把字符串按关键字放进书包

把字符串按关键字放进书包: <chtml> <Bag id=tempstate> <we name=we1>第一</we> <wename=we2>第二</we> </Bag> </chtml> 把字符串"第一"."第二"分别按关键字we1.we2放进书包temp中,并把书包temp保存到会话中 取出来看看 <p>@{temp:we1}</p> &