之前看到一道面试题,要求使用js写千分位,当时面试时有点懵逼,但是后来参考网上的写法与自己的思考,写出了千分位。 以下是通过网上的代码,本人进行了进一步优化后的代码,仅供参考。...相比较与网上的方法,我的方法实现了能对小数也进行处理的功能,不会出现如果数字是小数,分割千分位就是出错的问题。...首先在开始的时候对数字做处理,使用split方法将转化为string类型的字符串在“.”位处分割开,然后装进数组中 然后将前半部分(整数部分)反转过来 使用循环判断长度,三位长度就增加一个逗号。...DOCTYPE html> 千分位 </body...并转化为数组,使用reverse方法将其反转 for(var i = 0; i < list.length; i++){ //定义变量,判断list的长度 if(i % 4 == 3){ //当长度为三位时
由于小数部分符合匹配规则,因此,小数部分也添加了千分位。 前文使用的正则表达式如下: ((\.\d+[\w\W]*?)*?\d)(?...注意,替换完成后,需要去掉的字符串长度增加一位,因为多了一个千分位。...:123,456,789.1234555 使用的VBA代码如下: Option Explicit Option Base 1 Sub RegExpDemo3() '添加千分位 Dim...Len(strPad) - 1) Set objRegEx = Nothing End Sub 运行结果: 参考资料: [1] VBA:正则表达式(9) -添加千分位...(2/3) [2] 正则测试(https://tool.chinaz.com/regex) [3] VBA之正则表达式(11)-- 添加千分位(3/3)(https://blog.csdn.net/taller
前言:最近在做财务系统的开发功能,要求在导出的word文档里面的数字,要以千分位的格式处理显示,于是写了一下下面的方法,希望可以帮助到需要的小伙伴/*** 格式化数字为千分位显示;* @param* @...>pattern is null* @exception IllegalArgumentException if the given pattern is invalid.* @see java.text.NumberFormat...#getInstance* @see java.text.NumberFormat#getNumberInstance* @see java.text.NumberFormat#getCurrencyInstance...* @see java.text.NumberFormat#getPercentInstance*/public DecimalFormat(String pattern) { // Always...DecimalFormatSymbols.getInstance(Locale.getDefault(Locale.Category.FORMAT)); applyPattern(pattern, false);}占位符的处理
=(\d{3})+(\D|),顺序肯定环视,所在位置的右侧,连续数字字符的个数是三的整数倍;并且其后跟随一个非数字字符,或者结束标识符。\D,表示非数字字符。 (2)\.\d+[\w\W]*?...,匹配的是任意字符,但换行符除外。 (3)($2)*?\d,匹配任意数量的匹配组2,后跟一个数字。也就是说,可以有或者没有小数点。...由于小数部分符合匹配规则,因此,小数部分也添加了千分位。...(未完待续) 参考资料: [1] VBA:正则表达式(9) -添加千分位(1/3) [2] 正则测试(https://tool.chinaz.com/regex) [3] VBA之正则表达式(10)--...添加千分位(2/3)(https://blog.csdn.net/taller_2000/article/details/89792241)
环视的一个经典应用是添加千分位。添加千分位的一个正则表达式如下: (?<!\.\d+)(?<=\d+)(?=(\d{3})+(?!...这是为了保证小数部分不会添加千分位。 (2)?<=\d+,逆序肯定环视。所在位置的左侧只有数字。这是为了保证在整数部分添加千分位。 (3)?=(\d{3})+(?!...,或者结束标识符$,等等)。 VBA中通常使用的是VBScript正则(vbscript.regexp),不支持逆序环视。...结束标识$本意是希望用来匹配整数的结尾,但是小数部分也可能匹配到,所以小数部分也添加了千分位,这显然是不对的。...optionGlobl=global) [3] 正则测试(https://tool.chinaz.com/regex) [4] VBA之正则表达式(9)-- 添加千分位(1/3)(https://blog.csdn.net
介绍 Java中的位运算符是用于对二进制数进行操作的运算符。在计算机内部,所有的数据都是以二进制形式存储和处理的,因此使用位运算符可以高效地进行位操作,包括位移、位与、位或、位非、位异或等操作。...本文将介绍Java中的位运算符,包括其语法、操作和示例。...语法 Java中的位运算符包括以下6种: 位与(&) 位或(|) 位异或(^) 左移(<<) 右移(>>) 无符号右移(>>>) 它们的语法如下: 运算符 描述 & 位与运算符。...将左操作数的所有位向右移动指定的位数。在左边空出的位置填充0。 操作 以下是Java中的位运算符的操作。...注意事项 在使用位运算符时,需要注意以下几点: Java中的位运算符只能用于整型 位运算符的优先级较低,应该注意使用括号来确保正确的运算顺序。 左移和右移运算符的移动位数必须是非负整数。
1、Java中的位运算符(操作符) 位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。...从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面详细介绍每个位运算符。...2.Java中的运算符(操作符) 程序的基本功能是处理数据,任何编程语言都有自己的运算符。因为有了运算符,程序员才写出表达式,实现各种运算操作,实现各种逻辑要求。...Java运算符很多,下面按优先顺序列出了各种运算符。 2.1 . 一元运算 因操作数是一个,故称为一元运算符。 ++x 因为++在前,所以x的值先加1后用。...4、关系运算符 Java具有完备的关系运算符,这些关系运算符同数学中的关系运算符是一致的。
console.log(change(12345.67)) function change(num) { var str = num....
今天在看HashMap 源码的时候 看到了位移运算符,正好再复习一下 左移运算符 /** * The default initial capacity - MUST be a power of...首先看 1 << 4 这个操作,读法是 1 向左移动 4 位,用 二进制表示就是 0000 0001 十进制表示是 1 0001 0000 十进制表示是16 左移运算符就是在给定数值的基础上向左移动 N...,左移40位相当于左移8位(40%32=8)。...如果是 long 类型,则相应的操作位数会变大,变成64 位,所以 long 类型 左移 64 位无变化,左移 66 位相当于 (66%64 = 2)位 ---- 右移 运算符 右移运算符分为 2 种,...>> (右移运算符) 和 >>> (无符号右移运算符) >> (右移运算符) 右移运算符就是向右移动指定的位数,左边补上0,比如 10 >> 2 0000 1010 右移 >> 0000 0010 结果就是
&(按位与) 定义:针对二进制,只要有一个为0,就为0。...2 & 5 = 0 2的二进制:00000000 00000000 00000000 00000010 5的二进制:00000000 00000000 00000000 00000101 |(按位或...2 | 5 = 7 2的二进制:00000000 00000000 00000000 00000010 5的二进制:00000000 00000000 00000000 00000101 ^(按位亦或...2 ^ 3 = 1 2的二进制:00000000 00000000 00000000 00000010 3的二进制:00000000 00000000 00000000 00000011 ~(按位非...) 定义:按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
二进制运算符 由于计算机内部的数据都以二进制的形式存在,所以在Java语言中提供了直接操作二进制的运算符,这就是下面要讲解的位运算符和移位运算符。 ...关于二进制和补码的计算可以参看《Java编程那些事儿7——进制的概念》和《Java编程那些事儿8——计算机内部的数据表达》。 ...位运算符 Java语言中的位运算符主要有4种:&(位与)、|(位或)、^(异或)和~(按位取反),下面依次介绍运算规则和使用示例。 ...= 0); 将任意数字倒数第四位置为 假设n是一个任意的整数,则代码为: int m = n | 0x8; 在Thinking in Java第三章中的一段话: 移位运算符面向的运算对象也是二进制的...“有符号”右移位运算符使用了“符号扩展”:若值为正,则在高位插入0;若值为负,则在高位插入1。Java也添加了一种“无符号”右移位运算符(> > > ),它使用了“零扩展”:无论正负,都在高位插入0。
= 5(当二进制中两个数的对应位置都是0或者都是1时,结果才为0,例如10100 & 11010 = 01110) ~:反码,~6 = -7(正数的原码、反码、补码都是它自己,负数的反码是原码的除符号位取反
按位与运算符(&)按位与运算符(&)用于对两个操作数的位进行与运算,并返回一个结果。如果两个操作数的位都为1,则结果为1,否则结果为0。...然后我们使用按位与运算符(&)将它们的二进制数进行与运算,并将结果存储在变量c中。由于a和b的二进制数的位没有相同的1,因此结果为0。...按位或运算符(|)按位或运算符(|)用于对两个操作数的位进行或运算,并返回一个结果。如果两个操作数的位都为0,则结果为0,否则结果为1。...然后我们使用按位或运算符(|)将它们的二进制数进行或运算,并将结果存储在变量c中。由于a和b的二进制数的位都有1,因此结果为1111(15)。...按位异或运算符(^)按位异或运算符(^)用于对两个操作数的位进行异或运算,并返回一个结果。如果两个操作数的位相同,则结果为0,否则结果为1。
JS手撕(六) trim、模板字符串、千分位分隔符 trim 去掉字符串两边的空格。...包括空格符、制表符、回车符、换行符等 |:a | b匹配a或 b $:匹配输入字符串的结束位置 测试: const str1 = ' 12 3'; const str2 = '12 3...不用递归的方法的话,需要加g,变成全局匹配 return templateStr.replace(reg, (match, p1) => { return data[p1]; }) } 实现千分位分隔符...没有exp1的时候其实也可以说是匹配上了一个空串,所以当调用replace把匹配的内容变成,的时候,就有点见缝插针一样多出了一些分隔符。
本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。...Java中的位运算符 文本关键字:位运算符、位逻辑运算符、移位运算符 一、位运算符 大家在接触运算符的时候通常都已经学完了变量的使用,对于算术以及赋值运算的感觉就是So easy!...说起位运算符,其实就是基于数据存储的二进制位进行的运算,更底层,所以效率更高。...有些教材将&,|等位运算符也归为逻辑运算符,因为按位与(&)、按位或(|)能够操作的数据类型较多,其中就包括布尔类型,并且也能够帮助我们进行逻辑运算,但是小编还是建议按照符号本身的运算方式和操作数据类型等来记忆...按位与 那么按位与就是将运算符两边的数字转换为二进制后,在每两个对应位置上的数字进行与运算,再将最后的结果按十进制写出就可以了。
args) { System.out.println("a="+(2<<3)); } } 输出结果a=16 3、>>:右移,相当于除于2的-y次方,移位后不足的位用符号补充...main(String[] args) { System.out.println("b="+(8>>3)); } 输出结果b=1 4、>>>:与3 的区别就是,移位后不足的位用...0补充 位运算只用于整数,并且如果超过范围所得值为0。
左移运算符(>)右移运算符(>>)用于将一个操作数的所有二进制位右移指定的位数,并在高位填充符号位。如果操作数是正数,则在高位填充0;如果操作数是负数,则在高位填充1。...然后我们使用右移运算符(>>)将a的二进制数右移两位,并将结果存储在变量b中。由于右移两位相当于将10除以2的2次方(即2),因此结果为2。...无符号右移运算符(>>>)无符号右移运算符(>>>)用于将一个操作数的所有二进制位右移指定的位数,并在高位填充0。无符号右移运算符不考虑符号位,因此无论操作数是正数还是负数,在高位都填充0。
按位与运算符(&)按位与运算符(&)用于对两个操作数的所有二进制位执行逻辑AND操作。如果两个操作数的对应二进制位都为1,则结果为1;否则结果为0。...然后我们使用按位与运算符(&)对它们进行按位与运算,并将结果存储在变量c中。按位与运算的结果是0010,即2。按位或运算符(|)按位或运算符(|)用于对两个操作数的所有二进制位执行逻辑OR操作。...然后我们使用按位或运算符(|)对它们进行按位或运算,并将结果存储在变量c中。按位或运算的结果是1110,即14。...按位异或运算符(^)按位异或运算符(^)用于对两个操作数的所有二进制位执行逻辑XOR操作。如果两个操作数的对应二进制位不相同,则结果为1;否则结果为0。...按位取反运算符(~)按位取反运算符(~)用于对一个操作数的所有二进制位执行逻辑NOT操作。如果一个二进制位为0,则结果为1;否则结果为0。
位运算符 位运算符有:>。下面以左移运算符为例,见下图。...a>表示将该数的二进制位向右移若干位,不过右移分为算数右移和逻辑右移。 算数右移:右边丢,左边补原符号位(这是多数情况),比如一个负数,左边第一位是1,那么它在算数右移后,左边补上1,如下图。...位操作符 位操作符有:^,&,|,~。(均为二进制,且操作数必须是整数) 按位与:&:如果对应数值都为1,则变为1,其余变为0....按位或:|:如果对应数值其中一个是1,或者都是1,则变为1,其余依旧是0。 按位异或:^:如果相同则改为0,相异则改为1。 具体如下图: 按位取反:~:所有数值都取反,包括符号位,1变0,0变1.
一直纠结于位运算中的 按位取反 以及原码、反码、补码之间的各种关系,反正各种混淆各种懵逼。经过一小段时间才弄明白这个别人觉得很容易的问题。可能还是我基础不太好。...位运算是对操作数以二进制为单位的进行的运算,位运算符则用于位运算。位运算符包括&(按位与)、|(按位或)、^(按位异或)、~(按位取反)等等…位运算符操作数可以是整型或字符型,结果为整型。...按位取反是对补码进行运算,当运算完后,再将补码变回原码。 ~ 这个符号为按位取反运算符。...假如9的类型是char型,char类型占一个字节,一个字节等于八位二进制数,所以它的数据宽度为八位二进制数(0000 0000)。最高位,也就是最左边的0为符号位:0表示正数,1表示负数。...-5,若数据宽度为8位。
领取专属 10元无门槛券
手把手带您无忧上云