嗨,大家好我如何分隔一个字符串,例如:example,并生成summation
sumatory
为每个字母定义的值[a = 1,b = 2,c = 3,.. z = 26] 谢谢!ios obj将单独的字符串转换为字符并添加字母
回答
您可以使用characterAtIndex
从字符串中提取特定字符,例如,
[myString characterAtIndex:1]
或者遍历所有:
for (int i=0; i < [myString length]; i++) {
... [myString characterAtIndex:i]
// You can then decide how to assign a value to each individual string, via a switch.
}
这里是一个办法这样做:
NSMutableArray *chars = [NSMutableArray arrayWithCapacity:26];
// fill the array
unsigned int i;
for(i = 0; i < 26; i++) {
NSString *s = [NSString stringWithFormat:@"%c", (i+65)];
[chars addObject:s];
}
// now you have [0:"a", 1:"b", ..., 25:"z"]
NSUInteger sum = 0;
NSString lowerCaseString = [myString lowerCaseString];
for (int i=0; i < [myString length]; i++) {
NSString *character = [lowerCaseString substringWithRange:NSMakeRange(i, 1)];
// edit thanks to mortenfast ;-)
NSUInteger pos = [chars indexOfObject:character];
if(pos != NSNotFound) {
sum += (pos+1);
}
}
在添加到'sum'变量之前检查'[chars indexOfObject:]'返回'NSNotFound'是个好主意,以防它不是a-z之间的字符。 –
@mortenfast,你是完全正确的,我认为源字符串只是从'a'到'z'的字符,但是我会更新这个帖子。谢谢 – 2011-07-13 13:25:29
@mortenfast这种方式,它也防止添加任何东西的总和(或至少尝试)如果字符不是从'a'到'z'的字母遇到 – 2011-07-13 13:32:20
适用于iOS 4.0块版本:
__block int sum = 0;
NSString *string = [NSString stringWithString:@"abcdefghijklmnopqrstuvwxyz"];
[string enumerateSubstringsInRange:NSMakeRange(0,[string length])
options:NSStringEnumerationByComposedCharacterSequences
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
// 'a'=97=0x61=01100001, 'A'=65=0x41=01000001
// 26 letters and 2^5-1=31 so only 5 lower bits needed
sum += [substring characterAtIndex:0] & 0x1F;
// which is the same as
// sum += [substring characterAtIndex:0] -'a'+1;
}];
好例子谢谢 – MaKo
- 1. 加密:将字符串数组转换为单个字符串
- 2. 将字符串转换为字符串
- 3. 将字符串转换为字符串
- 4. 将字节字符串转换为java中的字母数字字符数组?
- 5. 将单字节转换为字符串并返回字节
- 6. 将字符串转换为字符
- 7. 将字符串转换为字符
- 8. 将字符串转换为字符
- 9. 将字符*转换为字符串
- 10. 将char字符串转换为字符
- 11. 将字符[]转换为字符串
- 12. Java - 将字符串转换为字符[]
- 13. InfixToPostfix将字符转换为字符串
- 14. 如何将此字符串转换为单独的字符串对象
- 15. 将textField转换为字符串并将字符串转换为textField
- 16. 将字符串转换为OTAN拼音字母表的字典
- 17. 如何将字符串中的字母转换为数字 - C++
- 18. Fortran将字符串转换为数字
- 19. 如何将字符串的字符串转换为字符?
- 20. SQL Server,将字母数字字符串转换为大写字母数字
- 21. 位移并将字符转换为Unicode转义字符串
- 22. 将字母数字字符串转换为整数格式
- 23. 如何将数字转换为字符串(字母)在PHP?
- 24. 将字母数字字符串转换为乱码条形码?
- 25. 将字符串转换为字符后打印单字节
- 26. 如何将数字字符串转换为数字(十进制)并将数字转换为字符串
- 27. 将字符串转换为日期并将日期转换回字符串
- 28. 将单引号字符串转换为双引号字符串
- 29. 如何将矢量字符串转换为简单字符串
- 30. 将字符串转换为
是什么sumatory ? – 2011-07-13 12:59:15
哈哈对不起,字固定! – MaKo
如果角色不在a到z或A到Z之间,那么该怎么办?并且它是不区分大小写的? –