java 类型转换和点号运算符的执行顺序_Java基础知识点Day02--数据类型转换与运算符...

Day02

1.数据类型转换

1.1自动类型转换(隐式)

1.特点:代码不需要进行特殊处理,自动完成。

2.规则:数据范围从小到大。

1.2强制类型转换(显式)

1.特点:代码需要进行特殊的格式处理,不能自动完成。

2.格式:范围小的数据类型 范围小的变量名 = (范围小的类型)原本范围大的数据;

3.注意事项:

(1)强制类型转换一般不推荐使用,因为有可能发生精度损失,数据溢出。

例如:int num = (int) 100L;

(2)byte/short/char这三种类型都可以发生数学运算。

(3)byte/short/char这三种类型在运算的时候都会首先被提升成为int类型,然后再计算。

例如:byte num1 = 20;

​ byte num 2 = 30;

​ result = num1 + num2;

​ // byte + byte —> int + int;

​ 所以result的数据类型是int ,不是byte;

(4)boolean类型不能发生数据类型转换。

1.3ASCII编码表

特殊记忆:ASCII值为48:代表数字0;(0~9依次类推)

​ ASCII值为65:代表大写字母A;(A~Z依次类推)

​ ASCII值为97:代表小写字母a;(a~z依次类推)

2.运算符

1.四则运算符

(1)除法:对于一个整数的表达式来说,除法用的是整除,整数除以整数,结果仍是整数,只看商不看余数。

例如:10/3=3;

(2)四则运算中"+"的三种用法

1)对于数值来说,就是正常的加法。

2)对于字符char类型来说,在计算之前,char会被提升成int,然后再计算。对照ASCII表或者Unicode表。

3)对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。任何数据类型和字符串进行连接的时候,结果都会变成字符串。

2.取模运算%

取余数: 只有对于整数的除法来说,取模运算符才有余数的意义。

注意事项:

一旦运算中有不同类型的数据,那么结果将会是数据类型范围大的那个。

3.自增自减运算符

以自增运算为例:

(1)基本含义:让变量加一

(2)使用格式:++num,也可以num++。

(3)使用方式:

​ 1)单独使用:不和其他任何操作混合,自己独立成为一个步骤。

​ 2)混合使用:和其他操作混合,例如与赋值混合,或者与打印混合等。

(4)使用区别:

​ 1)单独使用的++num和num++结果没有任何区别。

​ 2)混合使用时,前加加(++num)先加后用,后加加(num++)先用后加。

注意:只有变量才能使用自增自减运算,常量不可以。

4.赋值运算符

(1)基本赋值运算符:

“=”:把等号右边的数据交给等号左边的变量。例如:int a =9;

(2)复合赋值运算符

​ += a += 3 ------> a = a + 3

​ -= a -= 3 ------> a = a - 3

​ *= a *= 3 ------> a = a * 3

​ /= a /= 3 ------> a = a / 3

​ %= a %= 3 ------> a = a % 3

注意:

(1)只有变量才能使用赋值运算符,常量不能。

(2)复合赋值运算符中隐含了一个强制类型转换。

​ 例如:byte a = 10;

​ a += 5; //a = a + 5 隐含了 byte + int---->int + int的转换

5.比较运算符

大于、小于、大于等于、小于等于、相等(==)、不相等(!=)

注意:

(1)比较运算符的结果一定是一个boolean值,成立就是true,不成立就是false

(2)如果进行多次判断,不能连着写

6.逻辑运算符

与:&&

或:||

非:! (取反)

特殊记忆:与"&&",或"||",具有短路效果,根据左边已经可以判断得到最终结果,那么右边的代码将不再执行,从而节省一定的性能。

注意:逻辑运算符只能用于boolean值。

7.三元运算符

一元运算符:只需要一个数据就可以进行操作的运算符。例如:取反(!)、自增(++)、自减(–)。

二元运算符:需要两个数据才可以进行操作的运算符。例如:加法运算、赋值运算。

三元运算符:需要三个数据才可以进行操作的运算符。

(1)格式:数据类型 变量名称 = 条件判断 ? 表达式A :表达式B;

(2)流程:首先判断条件是否成立:

​ 如果成立为true,那么将表达式A的值赋给左侧变量。

​ 如果不成立为false,那么将表达式B的值赋给左侧变量。

​ 二者选其一。

注意事项:

(1)必须同时保证表达式A和表达式B都符合左侧数据类型。

(2)三元运算符的结果必须被使用。(要么赋值给一个新的变量,要么放到打印输出语句里)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,如果你想匹配格式为 yyyyMMddHHmmssSSS_sss.xlsx 的字符串,可以使用如下的正则表达式: ```java String patternString = "^\\d{17}_\\d{3}\\.xlsx$"; ``` 在这个正则表达式中,我们使用了正则表达式元字符 `^` 和 `$` 来匹配字符串的开头和结尾,`\\d{17}` 表示匹配 17 个数字字符(也就是年月日时分秒毫秒的组合),`_\\d{3}\\.xlsx` 表示匹配下划线和 3 个数字字符,以及 `.xlsx` 后缀。 如果你想提取字符串中的时间部分和文件后缀名,可以使用分组捕获的方式: ```java String patternString = "^(\\d{4})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{3})_(\\d{3})\\.xlsx$"; String filename = "20220815160855999_123.xlsx"; Pattern pattern = Pattern.compile(patternString); Matcher matcher = pattern.matcher(filename); if (matcher.matches()) { int year = Integer.parseInt(matcher.group(1)); int month = Integer.parseInt(matcher.group(2)); int day = Integer.parseInt(matcher.group(3)); int hour = Integer.parseInt(matcher.group(4)); int minute = Integer.parseInt(matcher.group(5)); int second = Integer.parseInt(matcher.group(6)); int millisecond = Integer.parseInt(matcher.group(7)); int suffix = Integer.parseInt(matcher.group(8)); System.out.println(String.format("%d-%02d-%02d %02d:%02d:%02d.%03d, suffix=%d", year, month, day, hour, minute, second, millisecond, suffix)); } ``` 在这个示例中,我们使用了分组捕获的方式提取了时间部分和文件后缀名,并将其输出。 注意,在使用正则表达式时,由于斜杠是正则表达式的特殊字符,需要使用转义字符将其转义,例如 `\d` 表示数字字符。此外,`.` 也是正则表达式的特殊字符,需要使用转义字符来匹配真实的,例如 `\\.xlsx` 表示匹配 `.xlsx` 后缀。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值