1. 首先写了一个字符串转整形的算法:
public static class String2Int1 implements String2Int { @Override public int string2int(String str) { int value = 0; int pow10 = 1; for (int j = str.length() - 1; j >= 0; --j) { char charValue = str.charAt(j); if (charValue == '-' && j == 0) { value = -value; break; } if (charValue == '+' && j == 0) { break; } value = value + (charValue - '0') * pow10; pow10 = pow10 * 10; } return value; } }
打印时间:
1the time is 3143, strValue = -1001213121
2. 测试了Android SDK的算法:
public static class String2Int2 implements String2Int { @Override public int string2int(String str) { return Integer.valueOf(str); } }
打印时间:
1the time is 7980, strValue = -1001213121
Android SDK 算法比自己实现的算法慢了一倍。但是,自己实现的算法可不可以改进呢。
3. 改进的算法:从左向右怎么样呢,是不是可以快速一点:
public static class String2Int2 implements String2Int { @Override public int string2int(String str) { int result = 0; boolean negative = false; int i = 0, len = str.length(); int digit; char firstChar = str.charAt(0); if (firstChar < '0') { // Possible leading "+" or "-" if (firstChar == '-') { negative = true; } i++; } while (i < len) { digit = str.charAt(i++) - '0'; result *= 10; result += digit; } return negative ? -result : result; } }
打印时间:
1the time is 2774, strValue = -1001213121
总结
由此可见。最后一个算法减少了乘法运算的次数,因此速度要快一点。
如果您看了有收获,那么下载一个APl软件支持一下博主吧!还可以解决您的密码太多记不住的烦恼哦。
源码下载链接:
http://a.app.qq.com/o/simple.jsp?pkgname=com.wa505.kf.epassword
相关推荐
1162:字符串逆序 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 31557 通过数: 20735 【题目描述】 输入一串以‘!’结束的字符,按逆序输出。 【输入】 如题述。 【输出】 如题述。 【输入样例】 abc! 【输出...
android 的字符串 ascII码 16进制的相互转换
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
字符串的常用方法如下表: 常用方法 说明 find() 字符串查找 count() 字符串出现次数 split() 分割字符串 join() 拼接字符串 replace() 字符串替换 strip() 移除字符串中的空格和指定字符 字符串常用方法 find()方法...
1138:将字符串中的小写字母转换成大写字母 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 54809 通过数: 25241 【题目描述】 给定一个字符串,将其中所有的小写字母转换成大写字母。 【输入】 输入一行,包含一...
题目内容 在指定位置编写代码,完成函数,根据给定的字符串,给出组成该字符串的字符的所有排列构成的字符串,例如字符串为abc时,结果为abc、acb、bac、bca、cab、cba。(提示:可以考虑拿掉某个位置的字符,则"该...
通过键盘输入一串小写字母(a~z)组成的字符串,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。 要求实现...
python字符串转数字
函数:字符串s1中删除串s2里包含的所有字符(c语言)
2010笔面试专栏一:字符串[借鉴].pdf
九度oj 题目1369:字符串的排列 剑指offer里面的题目 自己写的代码,供参考!
字符串使用;;;;;字符串的拼接:使用“+”号连接的方式,Python就会自动将若干个字符串合并成一个字符串。 实例:使用字符串的拼接符“+”号,把“不忘初心”和“牢记使命”拼接起来,并输出结果,想想还有其他便捷的...
数字字符串转BCD码,BCD码转字符串C函数,定义好的函数下载即可使用无需更改。
软件介绍: 字符串转换器可以进行10进制转2进制转换,10进制转8进制/16进制转换。16进制转2进制或8进制10...字符串转10进制16进制,字符串转Unicode或Delphi DFM字符串。转换前选择一下要使用的转换模式转换即可。
java,android map形式和数组list转json字符串 可直接调用
把一个数字字符串转换为整形,数字可以是大于2147483648的数字,可以是负数也可以是正数
详解C++中十六进制字符串转数字(数值) 主要有两个方法,其实都是对现有函数的使用: 方法1: sscanf() 函数名: sscanf 功 能: 从字符串格式化输入 用 法: int sscanf(char *string, char *format[,...
字符串转int int转字符串 IP字符串转int int转ip字符串
Android图片Bitmap和字符串String之间相互转换的工具类,外加项目代码,封装好的,直接可以用,
#c语言#的问题:输出格式输出提取出来的数字字符串,每个连续数字字符串占一行(相关搜索:字符串长度|输入字符串 #c语言#的问题:输出格式输出提取出来的数字字符串,每个连续数字字符串占一行(相关搜索:字符串...