一、运算符
- 运算符:对常量或者变量进行操作的符号 //"+" “-”
- 表达式:用运算符将多个变量或者常量连起来的式子 // 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(); 拆分