根据第一个字符设置某物颜色的算法
Algorithm to set color of something, depending on its first character
我试图区分我的应用程序中的一些背景颜色,与此背景的最大关系是什么?是不是里面有文字,
所以我想做一个算法来执行以下操作:
- 获取字符串的第一个字符
- 将所有字符分成 5 组(可能会得到所有字符计数并除以 5,然后 rage select).. 例如:
- 从 A -> E
- 从 E -> I
- 从我 -> N
- 从 N -> S
- 从 S -> Z
然后从这些组中,我可以检测到文本属于哪个组,并为这 5 个组中的每一个设置背景颜色,
比如我有一段文字"Hello",那么它来自第2组,背景颜色是#ff0000
我这里有一个小问题,如果一个字符不是来自 a-z(可能是数字或阿拉伯字符),那么它将是一个完整的独立组 (?)
有没有更好的算法来申请这个案例?如果没有,我想知道如何使用 Objective-C
进行上述算法
请注意:我不想要随机颜色!我想要基于我限制的一组颜色的颜色!
我发现了这个:http://randomstringtocsscolor.com/,但它是一个随机生成器。
我尝试了什么?
使用NSString
的characterAtIndex:
,我可以得到一个字符的数值,然后轻松比较它们
NSString *text = @"Hello";
unichar firstCharValue = [text characterAtIndex:0];
if(firstCharValue >= 5){
// background color Broup A
} else if(firstCharValue >= 10){
// background color Group B
} else if(firstCharValue >= 15){
// background color Group C
} else {
// background color default (unknown characters)
}
这个解决方案有什么问题?
在检查number是否大于等于X方面不是很方便,对于未知字符也不是很好,我有兴趣了解更多更方便的算法。
您可以编写一个函数,它接收文本和 return 随机 颜色 word。
-(UIColor *) randomColorFor:(NSString *) text{
NSArray *colors = @[UIColor.blackColor, UIColor.redColor, UIColor.greenColor, UIColor.orangeColor];
int code = (int)[[text uppercaseString] characterAtIndex:0];
int index = code % colors.count;
return colors[index];
}
我试图区分我的应用程序中的一些背景颜色,与此背景的最大关系是什么?是不是里面有文字,
所以我想做一个算法来执行以下操作:
- 获取字符串的第一个字符
- 将所有字符分成 5 组(可能会得到所有字符计数并除以 5,然后 rage select).. 例如:
- 从 A -> E
- 从 E -> I
- 从我 -> N
- 从 N -> S
- 从 S -> Z
然后从这些组中,我可以检测到文本属于哪个组,并为这 5 个组中的每一个设置背景颜色,
比如我有一段文字"Hello",那么它来自第2组,背景颜色是#ff0000
我这里有一个小问题,如果一个字符不是来自 a-z(可能是数字或阿拉伯字符),那么它将是一个完整的独立组 (?)
有没有更好的算法来申请这个案例?如果没有,我想知道如何使用 Objective-C
进行上述算法请注意:我不想要随机颜色!我想要基于我限制的一组颜色的颜色!
我发现了这个:http://randomstringtocsscolor.com/,但它是一个随机生成器。
我尝试了什么?
使用NSString
的characterAtIndex:
,我可以得到一个字符的数值,然后轻松比较它们
NSString *text = @"Hello";
unichar firstCharValue = [text characterAtIndex:0];
if(firstCharValue >= 5){
// background color Broup A
} else if(firstCharValue >= 10){
// background color Group B
} else if(firstCharValue >= 15){
// background color Group C
} else {
// background color default (unknown characters)
}
这个解决方案有什么问题?
在检查number是否大于等于X方面不是很方便,对于未知字符也不是很好,我有兴趣了解更多更方便的算法。
您可以编写一个函数,它接收文本和 return 随机 颜色 word。
-(UIColor *) randomColorFor:(NSString *) text{
NSArray *colors = @[UIColor.blackColor, UIColor.redColor, UIColor.greenColor, UIColor.orangeColor];
int code = (int)[[text uppercaseString] characterAtIndex:0];
int index = code % colors.count;
return colors[index];
}