昨天面试的时候遇到一道字符串转字典的题,当时把思路写了下来,今天用代码实现一下。
题目的内容大致是这样:
把一个字符串如:afh123jkkx2324klsdkjl839283a3b323n,取出字母作为key,数字作为value,存入一个字典。
由于字符串的内容只有字母和数字,所以我的大致思路是遍历字符串,判断每个字符的ASCII码,0-9的ASCII码是48~57。在每次字母和数字切换的位置标记为分割点,然后依次取出key,value.
下面用两种方式实现
第一种
1 | - (void) stringToDic:(NSString *)string { |
目标字符串:afh123jkkx2324klsdkjl839283a3b323n
打印结果
1
2
3
4
5
6
7 {
a = 3;
afh = 123;
b = 323;
jkkx = 2324;
klsdkjl = 839283;
}
第二种
1 | - (void) stringToDictionary:(NSString *)string { |
目标字符串:afh123jkkx2324klsdkjl839283a3b323n
打印结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 2018-07-26 12:41:03.921236+0800 Demo[42540:6832719] (
afh,
123,
jkkx,
2324,
klsdkjl,
839283,
a,
3,
b,
323,
n
)
2018-07-26 12:41:03.921494+0800 Demo[42540:6832719] {
a = 3;
afh = 123;
b = 323;
jkkx = 2324;
klsdkjl = 839283;
}
注意
这里需要注意的是字母和数字可能不是成对出现,那么需要处理异常情况,这里只是处理了结束位置为字母的情况,还有一种开始位置为数字的情况没有讨论。