第七周java学习总结
学号 20175206 《Java程序设计》第七周学习总结
教材学习内容总结
第八章:
主要内容
String类
StringTokenizer类
Scanner类
StringBuffer类
Date与Calendar类
日期格式化
Math、BigInteger与Random类
数字格式化
Class类与Console类
Pattern与Match类
重点和难点
重点:字符串的常用方法;字符串分析器使用;类Date和类Calendar以及类Math的使用
难点:字符串分析器的使用;各常用类的实际运用
String类
Java专门提供了用来处理字符序列的String类。
String类在java.lang包中,由于java.lang包中的类被默认引入,因此程序可以直接使用String类。
需要注意的是Java把String类声明为final类,因此用户不能扩展String类,即String类不可以有子类。
StringTokenizer类
本节学习怎样使用StringTokenizer对象分解String对象的字符序列。
StringTokenizer类在java.util包中,有两个常用的构造方法:
StringTokenizer(String s):为String对象s构造一个分析器。使用默认的分隔标记,即空格符、换行符、回车符、Tab符、进纸符做分隔标记。
StringTokenizer(String s, String delim为String对象s构造一个分析器。参数delim的字符序列中的字符的任意排列被作为分隔标记。
StringTokenizer对象称作一个字符串分析器可以使用下列方法:
(1) nextToken():逐个获取字符串中的语言符号(单词),字符串分析器中的负责计数的变量的值就自动减一 。
(2) hasMoreTokens():只要字符串中还有语言符号,即计数变量的值大于0,该方法就返回true,否则返回false。
(3)countTokens():得到分析器中计数变量的值。
Scanner类
使用Scanner类从字符串中解析程序所需要的数据。
Scanner对象可以解析字符序列中的单词,例如,对于String对象NBA
String NBA = "I Love This Game";
为了解析出NBA的字符序列中的单词,可以如下构造一个Scanner对象。
Scanner scanner = new Scanner(NBA);
Scanner对象可以调用方法
useDelimiter(正则表达式);
将正则表达式作为分隔标记,即让Scanner对象在解析操作时,把与正则表达式匹配的字符序列作为分隔标记。如果不指定分隔标记,那么Scanner对象默认地用空白字符:空格,制表符,回行符作为分隔标记来解析String对象的字符序列中的单词。
scanner将空格做为分隔标记来解析字符序列中的单词,具体解析操作:
scanner调用next()方法依次返回NBA中的单词,如果NBA最后一个单词已被next()方法返回,scanner调用hasNext()将返回false,否则返回true。
对于被解析的字符序列中的数字型的单词,比如618,168.98等,scanner可以用nextInt()或nextDouble()方法来代替next()方法,即scanner可以调用nextInt()或nextDouble()方法将数字型单词转化为int或double数据返回。
如果单词不是数字型单词,scanner调用nextInt()或nextDouble()方法将发生InputMismatchException异常,在处理异常时可以调用next()方法返回该非数字化单词。
Scanner对象可以调用 useDelimiter(正则表达式); 方法将一个正则表达式作为分隔标记,即和正则表达式匹配的字符串都是分隔标记。
StringBuffer类
String对象的字符序列是不可修改的,也就是说,String对象的字符序列的字符不能被修改、删除,即String对象的实体是不可以再发生变化的。
StringBuffer类的对象的实体的内存空间可以自动地改变大小,便于存放一个可变的字符序列。
Date与Calendar类
Date类
Date类在java.util包中.
Date类的构造方法之一:
Date()使用Date类的无参数构造方法创建的对象可以获取本地当前时间。
Date类的构造方法之二:
Date(long time)使用long型参数创建指定的时间
计算机系统将其自身的时间的“公元”设置在1970年1月1日0时(格林威治时间),可以根据这个时间使用Date的带参数的构造方法:Date(long time)来创建一个Date对象
Calendar类
Calendar类在java.util包中。
使用Calendar类的static方法 getInstance()可以初始化一个日历对象,
calendar对象可以调用方法:
public long getTimeInMillis() 可以将时间表示为毫秒。
public final void setTime(Date date)使用给定的 Date 设置此 Calendar 的时间
public int get(int field) :可以获取有关年份、月份、小时、星期等信息
日期的格式化
format方法
Formatter类的format方法:
format(格式化模式, 日期列表)
按着“格式化模式”返回“日期列表”中所列各个日期中所含数据(年,月,日,小时等数据)的字符串表示。
Java已经将format方法做为了String类的静态方法,因此,程序可以直接使用String类调用format方法对日期进行格式化。
1)格式化模式
format方法中的“格式化模式”是一个用双引号括起的字符序列(字符串),该字符序列中的字符由时间格式符和普通字符所构成。
2)日期列表
format方法中的“日期列表”可以是用逗号分隔的Calendar对象或Date对象。
format方法默认按从左到右的顺序使用“格式化模式”中的格式符来格式“日期列表”中对应的日期,而“格式化模式”中的普通字符保留原样。
3)格式化同一日期
可以在“格式化模式”中使用“<”,比如:"%ty-%<tm-%<td"中的三个格式符将格式化同一日期,即含有“<”的格式符和它前面的格式符格式同一个日期,例如:String s = String.format("%ty年%<tm月%<td日",new Date());那么%<tm和%<td都格式化new Date(),因此字符串s就是:"11年02月10日"。
不同区域的星期格式
如果想用特定地区的星期格式来表示日期中的星期,可以用format的重载方法:
format (Locale locale,格式化模式,日期列表);
其中的参数locale是一个Locale类的实例,用于表示地域。
Locale类的static常量都是Locale对象,其中US是表示美国的static常量。
Class类与Console类
1.使用Class的类方法得到一个和某类(参数className指定的类)相关的Class 对象,
public static Class forName(String className) throws ClassNotFoundException
上述方法返回一个和参数className指定的类相关的Class对象。如果类在某个包中,className必须带有包名,例如, className="java.util.Date"。
2.步骤1中获得的Class对象调用
public Object newInstance() throws Exception,
方法就可以得到一个className类的对象
要特别注意的是:使用Class对象调用newInstance()实例化一个className类的对象时,className类必须有无参数的构造方法。
得到匹配对象
Pattern与Matcher类
Java提供了专门用来进行模式匹配的Pattern类和Matcher类,这些类在java.util.regex包中。
以下结合具体问题来讲解使用Pattern类和Matcher类的步骤。假设有字符串:
String input = "hello,good morning,this is a good idea"
我们想知道input从哪个位置开始至哪个位置结束曾出现了字符串good。
使用Pattern类和Matcher类检索字符串str中的子字符串的步骤如下:
建立模式对象
使用正则表达式regex做参数得到一个称为模式的Pattern类的实例pattern:
例如:String regex = "good";
Pattern pattern = Pattern.compile(regex);
模式对象是对正则表达式的封装。Pattern类调用类方法compile(String regex)返回一个模式对象,其中的参数regex是一个正则表达式, 称为模式对象使用的模式。
得到匹配对象
模式对象pattern调用matcher(CharSequence input)方法返回一个Matcher对象matcher,称为匹配对象
Matcher matcher = pattern.matcher(input);
Matcher对象matcher可以使用下列方法寻找字符串input中是否有和模式regex匹配的子序列(regex是创建模式对象pattern时使用的正则表达式)。
public boolean find():寻找input和regex匹配的下一子序列,如果成功该方法返回true,否则返回false。
public boolean matches():matcher调用该方法判断input是否完全和regex匹配。
public boolean lookingAt():matcher调用该方法判断从input的开始位置是否有和regex匹配的子序列。
public boolean find(int start) : matcher调用该方法判断input从参数start指定位置开始是否有和regex匹配的子序列 。
public String replaceAll(String replacement) matcher调用该方法可以返回一个字符串,该字符串是通过把input中与模式regex匹配的子字符串全部替换为参数replacement指定的字符串得到的.
public String replaceFirst(String replacement) matcher调用该方法可以返回一个字符串,该字符串是通过把input中第1个与模式regex匹配的子字符串替换为参数replacement指定的字符串得到的。
代码调试中的问题和解决过程
- 问题1:Class与Console类区别?
 
class调用

console类

问题1解决方案:Class 是java.lang的类,该类的示例可以帮助创建其他的实例。
- 问题2:math类,biginteger类和random类
 问题2解决方案:
math类
biginteger类
random类



[代码托管]


学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 3500行 | 8篇 | 100小时 | |
| 第五周 | 350/500 | 2/2 | 15/20 | |
| 第六周 | 350/500 | 2/2 | 20/30 | |
| 第七周 | 600/1000 | 2/2 | 25/25 | |
| 第八周 | 0/1500 | 0/2 | 0/25 | 
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:25小时
实际学习时间:25小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
第七周java学习总结的更多相关文章
- 20165203《Java程序设计》第七周Java学习总结
		
20165203<Java程序设计>第七周Java学习总结 教材学习内容总结 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系统,简称MySQL,是世 ...
 - 20165223《Java程序设计》第七周Java学习总结
		
教材学习内容总结 第11章-JDBC与MySQL数据库 要点 MySQL数据库管理系统 连接MySQL数据库 查询操作(基础) 更新.添加.删除(基础) 预处理语句(重点) 通用查询(难点) 事务 笔 ...
 - 20145307第七周JAVA学习报告
		
20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...
 - 2019年8月12日~8月18日    第七周JAVA学习总结
		
本周主要完成了PTA代码编写的任务,将报告也完成了,但是由于同学聚会比较多所以JAVA的学习比较少,也没有学习统一建模语言.用在编程的时间平均每天5个小时,用在JAVA学习上平均每天1个小时,用在解决 ...
 - 201521123105 第七周Java学习总结
		
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 以下是ArrayList的contains源代码: public boole ...
 - 201871010124王生涛第六七周JAVA学习总结
		
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://edu.cnblogs.com/campus/xbsf/ ...
 - 20165236 第六周Java学习总结
		
20165236 第六周Java学习总结 一. 第八章内容: 1.String 类: String对象.常量对象:字符串并置: 常用方法: length,equals,startsWith,compa ...
 - 第五周Java学习总结(补)
		
第五周java学习内容(补) 学习内容: File类方法的操作 public String getName() public boolean canRead() public boolean canW ...
 - 20145307陈俊达第六周JAVA学习总结
		
20145307陈俊达第六周JAVA学习总结 知识点梳理 第十章节 S1 ·若要将数据从来源中取出,可以使用输入串流:若要将数据写入目的地,可以使用输出串流.在java中,输入串流代表对象为java. ...
 
随机推荐
- Django 创建一个返回当前时间的页面
			
创建一个 Django 项目及应用 django-admin startproject mysite cd mysite # 手动创建一个 templates 文件夹用来保存 html 文件 mkdi ...
 - Android Studio 3.0+ Annotation processors must be explicitly declared now
			
把Android Studio 升级到3.0+ 版本的时候出现该问题: 可以看到 给了我们两种解决办法: 1. 即 给出现问题的三方 加上 annotationProcessor配置 ...
 - ElasticSearch、Logstash、Kibana 搭建高效率日志管理系统
			
ELK (ElasticSearch.LogStash以及Kibana)三者组合是一个非常强大的工具,这里我们来实现监控日志文件并且收到日志到ElasticSearch搜索引擎,利用Kibana可视化 ...
 - Delphi IfThen语句
			
function IfThen(AValue: Boolean; const ATrue: string; AFalse: string = ''): string; overload; $[StrU ...
 - MySQL:select command denied to user for table 'proc'案例
			
使用EMS MySQL Manager Pro(3.4.0.1)连接MySQL 5.6.20时,报错:"SELECT command denied to user xxx@xxx.xxx.x ...
 - 记一次 c 语言 的 多线程查找 简单实现
			
//仅供参考学习 1 #define _CRT_SECURE_NO_WARNINGS //屏蔽 vs 的a #include <stdio.h> #include <stdlib.h ...
 - Go 编译原理实现计算器(测试驱动讲解)
			
本文不需要你掌握任何编译原理的知识. 只需要看懂简单的golang语言即可, 完整的代码示例在GIT, 代码是从writing an interpreter in go这本书抽取了简单的部分出来, 如 ...
 - DirectX11 With Windows SDK--10 摄像机类
			
前言 DirectX11 With Windows SDK完整目录:http://www.cnblogs.com/X-Jun/p/9028764.html 由于考虑后续的项目需要有一个比较好的演示环境 ...
 - 【深色模式】macOS Mojave+Visual Studio for Mac+FineUICore多图赏析!
			
全面开启深色模式,今早成功升级到 macOS Mojave,下面就来欣赏一下吧. 点击图片,查看大图 1. 下载 macOS Mojave 2. 安装成功,开启深色模式 3. 来一张桌面截图 4. 开 ...
 - VMware Workstation14 安装Ubuntu18.04
			
1 下载Vmware Workstations14破解版 百度网盘链接:https://pan.baidu.com/s/12yVxoPCJUAmdts4SUdzndg 提取码:bs0g 2 下载Ubu ...