一、运算符
- 运算符:对常量或者变量进行操作的符号 //"+" “-”
- 表达式:用运算符将多个变量或者常量连起来的式子 // a+b
二、算术运算符
1. 种类
运算符 | 含义 | 示例 | 区分 |
---|
+ | 加 | c = a + b | 二元 |
- | 减 | c = a - b | 二元 |
* | 乘 | c = a * b | 二元 |
/ | 除 | c = a / b | 二元 |
% | 取模 | c = a % b | 二元 |
- | 取负数 | c= - a | 一元 |
++ | 自增 | a++ | 一元 |
– | 自减 | b– | 一元 |
2. 自动运算提升
算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动提升
byte类型,short类型和char类型将被提升到int类型
- 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
- 等级顺序:
byte,short,char—int — long — float —double
3. 小结注意
- 两个数据做除法,/取结果的商,%取结果的余数。
- 整数操作只能得到整数,要想得到小数,必须有浮点数参与运算
- /和%的区别:
- "+"对于字符串来说,是连接的功能
- “++”"- -"来说,a++先运算,再自增 ++a先自增,再参与运算,只要执行a就自增
三、赋值运算符
符号 | 作用 | 说明 | 类型 |
---|
= | 赋值 | a=10,将10赋值给变量a | 二元 |
+= | 加后赋值 | a+=b,将a+b的值给a | 二元 |
-= | 减后赋值 | a-=b,将a-b的值给a | 二元 |
*= | 乘后赋值 | a*=b,将a×b的值给a | 二元 |
/= | 除后赋值 | a/=b,将a÷b的商给a | 二元 |
%= | 取余后赋值 | a%=b,将a÷b的余数给a | 二元 |
小结注意:
只有变量才能实用赋值运算符
四、逻辑运算符
运算符 | 含义 | 示例 | 类型 | 备注 |
---|
& | 逻辑与 | A & B | 二元 | 常用&&,前半段判断出来不执行后半段,提升代码效率 |
| | 逻辑或 | A | B |
^ | 逻辑异或 | A ^ B | 二元 | 一真一假为真,相同为假 |
! | 逻辑非 | ! A | 一元 | |
| | | 短路或 | A |
&& | 短路与 | A && B | 二元 | |
注意事项
- 逻辑运算符只能用于boolean值
- 与,或左右各自一个boolean值,取反只需要一个boolean值
五、位运算符
位运算符 | 含义 | 示例 | 类型 | 备注 |
---|
~ | 按位非(NOT) | b = ~a | | 1变0 0变1 |
& | 按位与(AND) | c = a & b | | 同1才1 其他为0 |
丨 | 按位或(OR) | c = a 丨b | | 同0才0 其他为1 |
^ | 按位异或(XOR) | c = a ^ b | | 相异为1 相同为0 |
>> | 右移 | b = a >> 2 | | 空出的位以0/1填充 |
>>> | 右移 | b = a >>> 2 | | 带符号右移 |
<< | 左移 | b = a << 1 | | 空出的位以0填充 |
和逻辑运算符区别
- & | 结果是true或者false时候是逻辑运算 有数的时候是位运算
六、三元运算符
关系表达式 ? 表达式1 : 表达式2
a > b ? a : b
- 如果值为true,表达式1的值就是运算结果
- 如果值为false,表达式2的值就是运算结果
七、简单的正则表达式
1. 字符类
- [abc] a、b、c其中任意一个
- [^abc] 除了a、b、c中的任意一个
- [a-zA-Z] a-z或A-Z范围中的任意一个
- [a-zA-Z0-9] a-z A-Z 0-9 其中任意一个
- [……] 可以自己定义范围
2.预定字符类
- \d 数字0-9
- \D 非数字0-9
- \s 空白字符:[ \t\n\x0B\f\r]
- \S 非空白字符:\s
- \w 单词字符:[a-zA-Z_0-9]
- \W 非单词字符\w
3.数量词
- ? 一次或者一次也没有
- 星号* 0次到多次
- 加号+ 一次或者多次
- {n} 恰好n次
- {n,} 至少n次
- {n,m} 至少n次但不超过m次
- .matches(); 匹配是否适合
- .spil(); 拆分