第四章 流程控制 今天是2020年第一次开始java学习,继续学习第四章的内容。这章的内容和C语言差不多,学起来也比较容易。
复合语句 复合语句是在{...}
之间的语句,复合语句可以嵌套其他复合语句。复合语句为局部变量创建了一个作用域,作用域外局部变量无法使用。
条件语句 if 语句 语法如下:
当if表达式后只有一条语句时,大括号{}
可以省略。 书中说明:为了增强程序的可读性最好不要省略。在不影响程序可读性的情况下,是可以省略的。
if…else语句 语法如下:
1 2 3 4 5 if (表达式){ 语句块1 } else { 语句块2 }
if…else语句可以使用三目运算符进行简化,
if…else if语句 语法格式:
1 2 3 4 5 6 7 8 if (表达式1 ){ 语句块1 }else if (表达式2 ){ 语句块2 }... else if (表达式n){ 语句块n }
针对于某一事件的多种情况进行处理,比如视频平台可以分为普通用户,vip用户,svip用户,vvip用户等。
switch多分支语句 switch语句和if...else if
语句在功能上类似,但使用起来更加方便。switch语句中表达式类型,可以是 整型,字符型或者字符串类型 。
循环语句 java中有三种常用的循环语句,while,do…while和for循环语句,这点和C语言十分类似。使用循环可以快速计算出从1加到100的值,同样也能快速计算从99加到9999。只需要修改初始值和结束值就可以了。如果用计算器需要算很久。计算机每秒可以处理很多的运算量,可以帮助我们做很多的事情。
循环控制 控制循环的跳转需要用到 break 和 continue 这两个关键字。break 和 continue 支持跳转到指定标签的功能,对于初学者而言,了解即可。
第五章 字符串 字符串作为单独的一章来学习,可见java中字符串的重要性。学好字符串,对于编程至关重要。
String 类 Java 中字符串作为String类的对象来处理。
字符串声明
创建字符串 1 2 String str; str = "We are students" ;
书中讲解了创建字符串的其他方法,作为初学者的我,喜欢上面的方法。
拼接字符串 字符串拼接是字符串操作中较简单的一种。
连接多个字符串 使用 +
运算符可以连接多个字符串并产生一个新的String对象。
连接其他数据类型 对于其他数据类型,连接时会自动调用toString()
方法,然后再与字符串连接。
获取字符串信息 字符串长度 length()方法可以获取字符串对象的长度。
字符串查找 字符串下标是0 ~ length()-1,注意下标是从0开始的。至于为什么从0开始,而不是从1开始,相信网上能够找到比较合理的解释。indexOf(),lastIndexOf()
这两个方法可以查找指定字符或者字符串的位置。
获取指定位置的字符 语法如下:
字符串操作 下面是几种常见的字符串操作,更多的操作可以查看Java API进行学习。
1 2 3 4 5 6 7 8 9 10 11 1. substring()2. strim() 去除空格3. replace()字符串替换4. startsWith()5. endsWith()6. equals()比较字符串是否相等7. equalsIgnoreCase()忽略大小写8. compareTo()按字段顺序比较两个字符串9. toLowerCase()10. toUpperCase()11. split()字符串分割,可以使用正则表达式
格式化字符串 日期和时间字符串格式化 在程序这几种,经常需要显示时间和日期,format()方法可以输出你想要的日期和时间格式。比如:2020-01-02 20:29:37
1 2 3 Date date = new Date(); String time = String.format("%tF %tT" , date, date); System.out.println(time);
日期格式化 1 2 3 4 5 6 7 8 9 10 11 1. %te 一个月中的某一天2. %tb 月份简称3. %tB 月份全称4. %tA 星期几全称5. %ta 星期几简称6. %tc 显示日期和时间全部信息7. %tY 4 位年份 2020 8. %ty 2 位年份 20 9. %tj 一年中的第几天 001 -366 10. %tm 月份 01 -12 11. %td 一个月中的第几天 01 -31
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 Date date = new Date(); String time; time = String.format("%te" , date); System.out.println("今天是这个月的第" + time + "天。" ); time = String.format("%ta" , date); System.out.println("今天是" + time); time = String.format("%tA" , date); System.out.println("今天是" + time); time = String.format("%tB" , date); System.out.println("今天是" + time); time = String.format("%tb" , date); System.out.println("今天是" + time); time = String.format("%tc" , date); System.out.println("今天是" + time); time = String.format("%tY" , date); System.out.println("今年是" + time + "年" ); time = String.format("%tj" , date); System.out.println("今天是今天的第" + time+"天" ); time = String.format("%tm" , date); System.out.println("今天是" + time+ "月" ); time = String.format("%td" , date); System.out.println("今天是这个月的第" + time + "天" ); time = String.format("%ty" , date); System.out.println("今天年是" + time + "年" );
输出结果:
1 2 3 4 5 6 7 8 9 10 11 今天是这个月的第2天。 今天是Thu 今天是Thursday 今天是January 今天是Jan 今天是Thu Jan 02 21:41:27 CST 2020 今年是2020年 今天是今天的第002天 今天是01月 今天是这个月的第02天 今天年是20年
下面是下面是一些英文日期的单词。
一月:January 二月:February 三月:March 四月:April 五月:May 六月:June 七月:July 八月:August 九月:September 十月:October 十一月:November 十二月:December
周一:Monday 周二:Tuesday 周三:Wednesday 周四:Thursday 周五:Friday 周六:Saturday 周日:Sunday
以下为简写 星期一 Mon. 星期二 Tue. 星期三 Wed. 星期四 Thu. 星期五 Fri. 星期六 Sat. 星期天 Sun.
时间格式化 时间格式化比日期格式化更多,更准确。可以将时间格式化为时,分,秒,毫秒。其中:1小时=60分,1分=60秒,1小时=3600秒。
1 2 3 4 5 6 7 8 9 10 11 12 13 1. %tH 2 位数字的24 时制的小时,00 -23 2. %tI 2 位数字的12 时制的小时,01 -12 3. %tk 2 位数字的24 时制的小时,0 -23 4. %tl 2 位数字的12 时制的小时,1 -12 5. %tM 2 位数字的分钟6. %tS 2 位数字的秒数7. %tL 3 位数字的毫秒数8. %tN 9 位数字的微秒数9. %tp 上午或下午10. %tz 时区偏移量11. %tZ 时区缩写字符串12. %ts 1970 -01 -01 00 :00 :00 至今经过的秒数13. %tq 1970 -01 -01 00 :00 :00 至今经过的毫秒数
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 Date date = new Date(); String time; time = String.format("%tH" , date); System.out.println("现在是" + time); time = String.format("%tI" , date); System.out.println("现在是" + time); time = String.format("%tk" , date); System.out.println("现在是" + time); time = String.format("%tl" , date); System.out.println("现在是" + time); time = String.format("%tM" , date); System.out.println("现在是" + time); time = String.format("%tS" , date); System.out.println("现在是" + time); time = String.format("%tL" , date); System.out.println("现在是" + time); time = String.format("%tN" , date); System.out.println("现在是" + time); time = String.format("%tp" , date); System.out.println("现在是" + time); time = String.format("%tz" , date); System.out.println("现在是" + time); time = String.format("%tZ" , date); System.out.println("现在是" + time); time = String.format("%ts" , date); System.out.println("现在是" + time); time = String.format("%tQ" , date); System.out.println("现在是" + time);
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 现在是21 现在是09 现在是21 现在是9 现在是59 现在是31 现在是165 现在是165000000 现在是pm 现在是+0800 现在是CST 现在是1577973571 现在是1577973571165
常见的日期时间组合 下面是常用的日期和时间的组合格式:
1 2 3 4 5 6 1. %tF 2020 -01 -01 2. %tD `月/日/年` 格式,2 位年份(03 /01 /20 )3. %tc 全部日期和时间信息4. %tr `时:分:秒`12 时制5. %tT `时:分:秒`24 时制6. %tR `时:分`24 时制
1 2 3 4 5 6 7 8 9 10 11 12 13 14 Date date = new Date(); String time; time = String.format("%tF" , date); System.out.println("现在是" + time); time = String.format("%tD" , date); System.out.println("现在是" + time); time = String.format("%tc" , date); System.out.println("现在是" + time); time = String.format("%tr" , date); System.out.println("现在是" + time); time = String.format("%tT" , date); System.out.println("现在是" + time); time = String.format("%tR" , date); System.out.println("现在是" + time);
输出结果:
1 2 3 4 5 6 现在是2020-01-07 现在是01/07/20 现在是Tue Jan 07 17:55:42 CST 2020 现在是05:55:42 PM 现在是17:55:42 现在是17:55
以上就是日期和时间字符串格式化的全部内容,很难都记住。记录下来,方便以后查看😀。
常规类型格式化
%b, %B 布尔类型
%h, %H 散列码
%s, %S 字符串类型
%c, %C 字符类型
%d 十进制整数
%o 八进制整数
%x, %X 16进制整数
%e 科学计数法表示的十进制数
%a 带有有效位数和指数的十六进制数
%n 特定于平台的行分隔符
%% 字面值%
正则表达式 正则表达式中的元字符: 1 2 3 4 5 6 7 1. . 代表任意字符2. \d 代表0 -9 任何一个数字3. \D 代表任何一个非数组4. \s 代表空白字符5. \S 代表非空白字符6. \w 代表可用户标识符的字符,不包括“$”7. \W 代表不可用户标识符的字符
其中"."
代表任何一个字符,想要使用普通意义的点字符“.”
,请使用转义字符“\”
。
正则表达式中的限定修饰符 1 2 3 4 5 6 1. ? 0 次或1 次2. * 0 次或多次3. + 1 次或多次4. {n} 正好n次5. {n,} 至少n次6. {n.m} n-m次
例子 判断字符串是否是合法的邮箱地址:"\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}"
一般邮箱格式为:X@X.com.cn
X表示任意的一个或多个字符。
分析:\\w
代表任意字符,+
表示字符可以出现一次或多次。(\\.\\w{2,3})*
表示形如.com
格式的字符串可以出现0次或多次。
字符串生成器 频繁的附加字符串,建议使用StringBuilder,可以动态的执行添加,删除,插入等字符串的编辑操作。
精通Java中的字符串处理基础是学习Java语言的基础,格式化字符串,使用正则表达式等,这些内容是字符串处理技术的重点,应该熟练掌握。
第六章 数组 数组是一种常见的数据结构,数组对java编程同样十分重要。接下来开始学习数组,与C语言中的数组十分相似。
数组概述 数组是一组具有相同数据类型的数据的集合。根据数组的维数可将数组分为一维数组,二维数组…
一维数组的创建和使用 声明语法
比如:
1 2 int arr[];String str[];
分配内存
可以将数组的声明和内存分配放在一起:
1 int months[] = new int [12 ];
初始化 1 2 int arr[] = new int []{1 , 2 , 3 , 4 , 5 };int arr2[] = {1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 };
注意:数组下标是从0开始的。
二维数组的创建和使用 同一维数组类似,同样包括声明,分配内存,和初始化等内容。作为初学者,掌握一维数组即可。
数组的基本操作 java.util包的Arrays类包含了各种操作数组的方法。
数组遍历 1 2 3 4 int arr[] = {1 , 2 , 3 , 4 , 5 };for (int a : arr){ System.out.println(a); }
注意foreach的语法格式使用的是 “:”
。
填充替换数组元素 1 2 3 4 5 6 int arr[] = new int [5 ];Arrays.fill(arr, 6 ); Arrays.fill(arr, 2 , 4 , 9 ); for (int a : arr){ System.out.println(a); }
数组排序 Arrays.sort(ojb)
数组复制 1 2 3 4 5 6 7 8 9 10 int arr[] = {1 , 2 , 3 };int newArr[] = Arrays.copyOf(arr, 4 );for (int a : newArr){ System.out.println(a); } System.out.println(); int newArr2[] = Arrays.copyOfRange(arr, 0 , 4 );for (int a : newArr2){ System.out.println(a); }
数组查询 Arrays类的binarySearch()方法,可以使用二分查找方法来查找指定数组,注意数组先排序才能使用此方法。排序与查找是数据结构的基本算法。
数组排序算法 冒泡排序,直接选择排序,反转排序。排序属于数据结构中的知识,以后专门来学习排序相关的算法。作为初学者,先暂时跳过者一节👌。