JavaScript比较大数字符串
2016-08-19 07:28
381 查看
假如你要编写一个函数,stringIntGreaterThan,接收两个字符串参数。
这两个参数代表可能为正负的整数,它们可以是任意的位数,甚至是上千位。
可以确信,这两个整数都不会由0开头。
这个函数如果第一个参数大于第二个参数,则返回true,否则返回false。
我的思路很简单,划分成四种情况:
1.参数同时为正,这种情况下,先判断长度,更长的更大,如果长度一致,则一个个字符地作大小比较。
2.第一个参数为正,第二个为负,这样无须比较,直接返回true。
3.第一个参数为负,第二个为正,这样无须比较,直接返回false。
4.参数同时为负,这种情况下,先判断长度,更长的更小,如果长度一致,则一个个字符地作大小比较。
这样的话,就需要一个判断负数的辅助函数。
实现代码如下:
大家可以看到,实现代码比较长,应该有更好的方法,欢迎和我分享。
这两个参数代表可能为正负的整数,它们可以是任意的位数,甚至是上千位。
可以确信,这两个整数都不会由0开头。
这个函数如果第一个参数大于第二个参数,则返回true,否则返回false。
我的思路很简单,划分成四种情况:
1.参数同时为正,这种情况下,先判断长度,更长的更大,如果长度一致,则一个个字符地作大小比较。
2.第一个参数为正,第二个为负,这样无须比较,直接返回true。
3.第一个参数为负,第二个为正,这样无须比较,直接返回false。
4.参数同时为负,这种情况下,先判断长度,更长的更小,如果长度一致,则一个个字符地作大小比较。
这样的话,就需要一个判断负数的辅助函数。
实现代码如下:
function isNegative(str){ return str.indexOf("-") === 0; } function stringIntGreaterThan(a, b) { if(isNegative(a) && isNegative(b)){ if(a.length < b.length){ return true; } else if(a.length > b.length){ return false; } for(var i=0;i<a.length;i++){ var c1 = a.charAt(i); var c2 = b.charAt(i); if(c1 > c2){ return false; } if(c1 < c2){ return true; } } } else if(!isNegative(a) && isNegative(b)){ return true; } else if(isNegative(a) && !isNegative(b)){ return false; } else{ if(a.length > b.length){ return true; } else if(a.length < b.length){ return false; } for(var i=0;i<a.length;i++){ var c1 = a.charAt(i); var c2 = b.charAt(i); if(c1 > c2){ return true; } if(c1 < c2){ return false; } } } return false; }
大家可以看到,实现代码比较长,应该有更好的方法,欢迎和我分享。
相关文章推荐
- JavaScript解析Json字符串的性能比较
- javascript 比较两个字符串
- JavaScript解析Json字符串 众浏览器性能比较
- javascript将字符串类型转换成日期进行比较
- JavaScript解析Json字符串的性能比较
- javascript可以直接比较时间字符串的大小
- javascript中比较字符串是否相等的方法
- Javascript中实现字符串转日期和比较日期大小
- javascript使用Array、join做字符存储和直接使用+号拼接字符串的执行效率比较
- javascript中比较字符串是否相等的方法
- javascript 两个字符串比较函数
- javascript中的字符串时间比较
- JavaScript 解析Json字符串的性能比较分析代码
- 在IE下 javascript比较两个字符串(包括中文汉字)是否相等
- javascript 字符串和0比较
- 比较javascript两种字符串连接的性能
- JavaScript 解析Json字符串的性能比较分析代码
- JavaScript解析Json字符串的性能比较
- Javascript拼接字符串的效率比较:String.replace VS Array.push
- JAVASCRIPT中比较字符串是否相等的方法