第七周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. ...
随机推荐
- C# E店宝格格家接口对接
一.实现图片 二.实现通用方法 /// <summary> /// 调用通用方法 /// </summary> /// <param name="strURL& ...
- webpack中使用DefinePlugin定义全局变量
DefinePlugin可以在编译时期创建全局变量.DefinePlugin是webpack注入全局变量的插件,通常使用该插件来判别代码运行的环境变量.
- layui 轮播图动态数据不显示问题
layui.use('carousel', function() { var carousel = layui.carousel; var ins = carousel.render({ elem: ...
- 解决PostGIS打开shp文件输入输出模块出现"找不到文件libintl-9.dll"的问题
找到shp2pgsql-gui.exe这个程序的目录 复制一份libintl-8.dll副本,改名为libintl-9.dll即可.
- 基于Odoo框架的开源在线客服系统
cs_base 开源客服系统,基于 Odoo 的客服模块 cs_base 是在强大的 Odoo 框架的基础上实现的一个在线客服应用 基础模块包含完整的 Web 在线客服的接入,坐席管理等,通过扩展可方 ...
- Android studio怎么使用自定义的framework而避免冲突报错和点不进去报红。
文件:xx\project_abc\video\build.gradle保证可以运行到自定义的framework而不报错,可能因为project和module名字相同所以导致下面的路径是绝对路径,其他 ...
- 卸载windows补丁
wusa /uninstall /kb: wusa /uninstall /kb: 和某些应用软件冲突时,需要将上述补丁卸载.
- python类的继承、封装和多态
摘自https://www.cnblogs.com/evablogs/p/6724477.html 继承 1 2 3 4 5 6 7 8 class Person(object): def _ ...
- js得到规范的时间格式函数,并调用
1.js得到规范的时间格式函数 Date.prototype.format = function(fmt) { var o = { "M+" : this.getMonth()+1 ...
- 看AppCan移动管理平台如何助力企业移动化
AppCan企业移动管理平台(EMM)是为企业移动化战略提供综合管理的平台产品.AppCan EM移动管理平台为企业提供对用户.应用.设备.内容.邮件的综合管理服务,并在此基础上为企业提供统一应用商店 ...