本文共 848 字,大约阅读时间需要 2 分钟。
在Objective-C中实现类似于C语言中的atoi函数的功能,可以通过解析字符串并将其转换为整数来完成。以下是一个完整的实现示例,涵盖了处理空格、正负号和数字字符的逻辑。
#importint myAtoi(NSString *str) { NSString *trimmedStr = [str trimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; if ([trimmedStr length] == 0) { return 0; } NSInteger result = 0; NSInteger length = [trimmedStr length]; for (NSInteger i = 0; i < length; i++) { unichar ch = [trimmedStr characterAtIndex:i]; if (ch >= '0' && ch <= '9') { result = result * 10 + (ch - '0'); } else { break; } } return result;}
去除空格和换行:使用trimmingCharactersInSet方法去除字符串前后空格和换行符,得到一个精简的字符串。
处理空字符串:如果去除后的字符串为空,直接返回0。
遍历字符:逐个检查字符串中的每个字符。如果字符是数字,则将其转换为整数并累加到结果中。如果遇到非数字字符,提前终止循环。
返回结果:最终返回转换后的整数结果。
这个实现简单高效,能够正确处理正数、负数以及带有空格的字符串。
转载地址:http://tbnfk.baihongyu.com/