List取并集、交集、差集
- 并集:Union
- 交集:Intersect
- 差集:Except
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| List<T> list1 = new List<T>(); List<T> list2 = new List<T>();
List<T> list = new List<T>();
list = list1.Union(list2);
list = list1.Intersect(list2);
list = list1.Except(list2)
|
Trim()–去除首尾字符
Trim()
删除字符串头部及尾部出现的空格
TrimStart()
只删除字符串的头部的空格
TrimEnd()
只删除字符串尾部的空格
定义和用法:
Trim() 方法删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。
Trim() 方法不会改变原始字符串。
Trim() 方法不适用于 null, undefined, Number 类型。
语法:
示例:
1 2
| var str = " Runoob "; var resData = str.Trim();
|
输出结果:
扩展:
去除末尾无效零
先去除零 如果最后有小数点则转化为Decimal
去除掉
1
| item.Quantity = item.Quantity.ToString().TrimEnd('0').ToDecimal();
|
Substring()–截取字符串
定义和用法:
Substring() 方法用于提取字符串中介于两个指定下标之间的字符。
语法:
1
| stringObject.Substring(start,stop)
|
参数 |
描述 |
start |
必需。一个非负的整数,规定要提取的子串的第一个字符在 stringObject 中的位置。 |
stop |
可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。 |
示例:
1 2
| var str = "Hello world!"; var resData = str.Substring(2);
|
输出结果:
扩展:
用IndexOf()
获取到字符串某个单词的位置
加上单词本身的长度 就是从这个单词后开始截取
示例:
1 2
| var str = "Hello world!"; var resData = str.Substring(str.IndexOf("Hello") + 5, 3);
|
输出结果:
Replace()–替换字符
定义和用法:
Replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
语法:
1
| stringObject.Replace(regexp/substr,replacement)
|
参数 |
描述 |
regexp/substr |
必需。规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 |
replacement |
必需。一个字符串值。规定了替换文本或生成替换文本的函数。 |
示例:
1 2
| var str = "Visit Microsoft!"; var resData = str.Replace("Microsoft", "W3School");
|
输出结果:
Split()–字符串转数组
定义和用法:
Split() 方法用于把一个字符串分割成字符串数组。
提示: 如果把空字符串 (“”) 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
注意: Split() 方法不改变原始字符串。
语法:
1
| string.Split(separator,limit)
|
参数 |
描述 |
separator |
可选。字符串或正则表达式,从该参数指定的地方分割 string Object。 |
limit |
可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
示例:
1 2
| var str="How are you doing today?"; var n=str.Split();
|
输出结果:
1 2 3 4 5
| How are you doing today?
|
Join()–数组转字符串
定义和用法:
Join() 方法连接一个字符串数组中的所有元素,使用指定的分隔符分隔每个元素
示例:
1 2
| string[] sarray = { "Hello", "From", "Tutorials", "Point" }; string message = String.Join(",", sarray);
|
输出结果:
1
| Hello,From,Tutorials,Point
|
加减乘除精度
综合封装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
var floatObj = function() {
function isInteger(obj) { return Math.floor(obj) === obj }
function toInteger(floatNum) { var ret = {times: 1, num: 0} if (isInteger(floatNum)) { ret.num = floatNum return ret } var strfi = floatNum + '' var dotPos = strfi.indexOf('.') var len = strfi.substr(dotPos+1).length var times = Math.pow(10, len) var intNum = Number(floatNum.toString().replace('.','')) ret.times = times ret.num = intNum return ret }
function operation(a, b, digits, op) { var o1 = toInteger(a) var o2 = toInteger(b) var n1 = o1.num var n2 = o2.num var t1 = o1.times var t2 = o2.times var max = t1 > t2 ? t1 : t2 var result = null switch (op) { case 'add': if (t1 === t2) { result = n1 + n2 } else if (t1 > t2) { result = n1 + n2 * (t1 / t2) } else { result = n1 * (t2 / t1) + n2 } return result / max case 'subtract': if (t1 === t2) { result = n1 - n2 } else if (t1 > t2) { result = n1 - n2 * (t1 / t2) } else { result = n1 * (t2 / t1) - n2 } return result / max case 'multiply': result = (n1 * n2) / (t1 * t2) return result case 'divide': result = (n1 / n2) * (t2 / t1) return result } }
function add(a, b, digits) { return operation(a, b, digits, 'add') } function subtract(a, b, digits) { return operation(a, b, digits, 'subtract') } function multiply(a, b, digits) { return operation(a, b, digits, 'multiply') } function divide(a, b, digits) { return operation(a, b, digits, 'divide') }
return { add: add, subtract: subtract, multiply: multiply, divide: divide } }();
|
toFixed的修复如下:
1 2 3 4 5 6 7
| function toFixed(num, s) { var times = Math.pow(10, s) var des = num * times + 0.5 des = parseInt(des, 10) / times return des + '' }
|
加法运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
function numAdd(arg1, arg2) { var r1, r2, m, c; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } c = Math.abs(r1 - r2); m = Math.pow(10, Math.max(r1, r2)); if (c > 0) { var cm = Math.pow(10, c); if (r1 > r2) { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")) * cm; } else { arg1 = Number(arg1.toString().replace(".", "")) * cm; arg2 = Number(arg2.toString().replace(".", "")); } } else { arg1 = Number(arg1.toString().replace(".", "")); arg2 = Number(arg2.toString().replace(".", "")); } return (arg1 + arg2) / m; }
Number.prototype.add = function (arg) { return accAdd(arg, this); };
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
function numAdd(num1, num2) { var baseNum, baseNum1, baseNum2; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); return (num1 * baseNum + num2 * baseNum) / baseNum; };
|
减法运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
function numSub(num1, num2) { var baseNum, baseNum1, baseNum2; var precision; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } baseNum = Math.pow(10, Math.max(baseNum1, baseNum2)); precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2; return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision); };
|
乘法运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
function numMulti(num1, num2) { var baseNum = 0; try { baseNum += num1.toString().split(".")[1].length; } catch (e) { } try { baseNum += num2.toString().split(".")[1].length; } catch (e) { } return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum); };
|
除法运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
function numDiv(num1, num2) { var baseNum1 = 0, baseNum2 = 0; var baseNum3, baseNum4; try { baseNum1 = num1.toString().split(".")[1].length; } catch (e) { baseNum1 = 0; } try { baseNum2 = num2.toString().split(".")[1].length; } catch (e) { baseNum2 = 0; } with (Math) { baseNum3 = Number(num1.toString().replace(".", "")); baseNum4 = Number(num2.toString().replace(".", "")); return (baseNum3 / baseNum4) * pow(10, baseNum2 - baseNum1); } };
|