20175308 2018-2019-2 《Java程序设计》第七周学习总结

教材学习内容总结

本周学习第八章:常用实用类

String类:

  1. String类位于java.lang包中,被定义为final类,不可扩展,不可以有子类。
  2. 两种新的构造方式:
  1. char a[] = {'J''a','v','a'};
  2. String s = new String(a);

  1. String(char a[],int startIndex,int count)
  2. startIndex:起始位置
  3. count:字符个数

(从字符数组中从startIndex起取count个字符构成字符串)

3. 字符的并置运算:通过“+”进行并置运算

参加并置运算的只要有一个为变量,新生成的字符串都会在动态区,相当于new String (....),如果都是常量,正常放入常量池中

4.方法一览:

  1. public int length():获取字符串长度;
  2. public boolean equals(String s):比较字符串内容是否相同(比较内容,无所谓如何生成的字符串);
  3. public boolean startWith(String s)
  4. public boolean endWith(String s):判断字符串是否由参数s开头/结尾;
  5. public int compareTo(String s):按字典序与参数指定的s比较大小(相等返回0,大于s返回整数,小于s返回负数);
  6. public boolean contain(String s):判断字符串中是否包含参数s
  7. public int indexOf(String s)
  8. public int lastindexOf(String s):返回s在字符串中首次/最后一次出现的位置(位置从0开始算);
  9. public String substring(int startpoint):获得一个新的字符串,从原字符串的startpoint位置直到最后一个字符都复制下来;
  10. public String trim():返回当前String对象去掉前后空格后的字符序列。

5.与字符数组、字节数组:

将字符串中的字符序列放入字符数组的方法:

public void getChars(int start,int end,char c[],int offset)(起始位置,种植位置,字符数组名称,放入字符数组的位置)

将指定的字节数组byte构成String对象的方法:

String(byte[],int offset,int length)

6.正则表达式:

public boolean matches (String regex)判断当前String对象的字符是否和正则表达式相匹配。

public String replaceAll(String regex,String replacement)返回一个String对象,将原字符串中所有与正则表达式相匹配的字符序列换成replacement后得到的字符序列。

StringTokenizer类:

  • 两种构造方法:

    1.StringTokenizer(String s)对s进行分解,分隔标记使用默认的空格、换行、回撤、Tab等

    2.StringTokenizer(String s,String delim)以delim为分隔标记(delim中字符的任何序列
  • has MoreTokens():如果字符串中还有内容返回true,否则返回false
  • countTokens():以字符串全长为初值,分析一个后减一

Scanner类:

Scanner类对象也可以解析字符序列中的单词。useDelimiter(正则表达式)以正则表达式为分隔字符。next()依次返回被解析字符序列中的单词,如果最后一个单词也被返回,那么hasNext()将返回false。

与StringTokenizer的区别:都可以用于分解字符序列中的单词,但思路不同,StringTokenizer将分解出的单词全部存放在对象的实体中,因此获得单词速度较快,但占用空间Scanner仅仅存放怎样获得单词的分隔标记,获得单词的速度较慢,但节省空间

StringBuffer类:

与String类不同,StringBuffer类的对象的实体的内存空间可以自动改变大小,便于存放一个可变的序列。

三个构造方法

  1. StringBuffer():自动分配初始容量容纳16个字符,大于16则重新分配;
  2. StringBuffer(int size):指定分配实体空间的容量为size;
  3. StringBuffer(String s):指定分配空间为s长度再加16

常用方法:

  1. 1.append方法:追加;
  2. 2.public char charAt(int n):得到StringBuffer字符序列位置n上的字符;
  3. 3.public void setCharAt(int n,char ch):将当前对象字符序列位置n上的字符用ch指定的字符替换;
  4. 4.StringBuffer insert(int index,String str):使用insert方法将参数str指定的字符序列插入index指定的位置,并返回当前对象的引用;
  5. 5.public StringBuffer reverse():将对象实体中的字符序列翻转并返回引用;
  6. 6.StringBuffer delete(int startIndex,int endIndex):从startIndexendIndex-1删除字符并返回引用;
  7. 7.StringBuffer replace(int startIndex,int endIndex,String str):替换字符。

Math类:

Math类中存放着许多可以进行科学计算的static方法,这些方法都可一直接通过类名调用。

方法一览:

  1. 1.public static long abs(double a):返回a的绝对值;
  2. 2.public static double max(double a,double b):返回ab的最大值;
  3. 3.public static double min(double a,double b):返回ab的最小值;
  4. 4.public static double random():产生一个01之间的随机数(不包括01);
  5. 5.public static double pow(double a,double b):返回ab次幂;
  6. 6.public static double sqrt(double a):返回a的平方根;
  7. 7.public static double log(double a):
  8. 返回a的对数;
  9. 8.public static double sin(double a):返回a的正弦值;
  10. 9.public static double asin(double a):返回a的反正弦值;
  11. 10.public static double ceil(double a):返回大于a的最小整数(转化成double类型);
  12. 11.public static double floor(double a):返回小于a的最大整数(转化成double类型);
  13. 12.public static long round(double a):返回四舍五入后的值。

教材学习中的问题和解决过程

本次学习任务为第八章,里面介绍了常用实用类的基本介绍和用法。有不少类都在之前的学习中有所使用,所以说不上多难,但是对这么多类同时进行系统的学习和驳杂概念的记忆着实是一个不小的挑战,只能尽量挑着重点有选择的记忆。但这种填鸭的记忆并不牢靠,还要靠今后的练习一点点的深入理解。

代码调试中的问题和解决

  • 问题:在对教材Example8_12的练习中,我得到了以下结果:

,这与程序正确的结果不符。

问题的解决:仔细观察结果,结果中只计错了商品数量,而商品总价值是正确的,问题必定出现在getGoodsAmount()中。

如图可见,我的StringTokenizer fenxi = new StringTokenizer(shoppingReceipt)忘记标注分隔符号“#”,即StringTokenizer fenxi = new StringTokenizer(shoppingReceipt,"#")。代码本意是将除数字以外的字符全都替换成“#”,然后以“#”为分隔符号分析字符串,这样有几个数字作为价格,就有几个商品。缺少了“#”,就只能计算一个商品。

代码托管

感悟

实话说最近感觉到学习越来越吃力,可能是清明假期出游浪费了太多时间,现在很明显的感觉时间不够用,需要记忆学习的内容太多,需要重新找到一个行之有效的方法改变现在这种状况。

JAVA 第七周学习总结的更多相关文章

  1. 20165210 Java第七周学习总结

    20165210 Java第七周学习总结 教材内容学习 第十一章学习总结 连接数据库: 1. 下载JDBC-MySQL数据库驱动 2. 加载JDBC-MySQL数据库驱动 3. 连接数据库 4. 注意 ...

  2. 20145304 Java第七周学习报告

    20145304<Java程序设计>第七周学习总结 教材学习内容总结 1.时间的度量: 格林威治标准时间(GMT)通过观察太阳而得,其正午是太阳抵达天空最高点之时,因地球的公转与自传,会造 ...

  3. 20165326 java第七周学习笔记

    第七周学习笔记 MySQL(数据管理系统)学习 知识点总结: 不能通过关闭MySQL数据库服务器所占用的命令行窗口来关闭MySQL数据库. 如果MySQL服务器和MySQL管理工具驻留在同一台计算机上 ...

  4. 201521123093 java 第七周学习总结

    1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 //contains()方法 public boolean contains ...

  5. Java第七周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 ...

  6. 20145213《Java程序设计》第七周学习总结

    20145213<Java程序设计>第七周学习总结 教材学习内容总结 周末快乐的时间总是短暂的,还没好好感受就到了要写博客的周日.有人喟叹时间都去哪儿了,那本周我们就来认识一下Java里的 ...

  7. 20145337《JAVA程序设计》第七周学习总结

    20145337 <Java程序设计>第七周学习总结 教材学习内容总结 时间的度量 格林威治时间GMT,世界时UT,国际原子时TAI,世界协调时间UTC 就目前来说,即使标注为GMT,实际 ...

  8. 20145320 《Java程序设计》第七周学习总结

    20145320 <Java程序设计>第七周学习总结 教材学习内容总结 13章 时间与日期 时间的度量: 格林威治标准时间(GMT时间),现已不作为标准时间使用. 世界时(UT),秒的单位 ...

  9. 《Java程序设计》第七周学习总结

    20145224 <Java程序设计>第七周学习总结 教材学习内容总结 13.1 认识时间与日期 ·想要度量时间首先要有时间基准,目前国际上通用的有一下六个时间基准: 1.格林威治标准时间 ...

随机推荐

  1. 【常用配置】Spring框架web.xml通用配置

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java. ...

  2. python字典按照value进行排序

    先说几个解决的方法,具体的有时间再细说 d = {'a':1,'b':4,'c':2} 字典是这个,然后要对字典按照value进行排序 方法一: sorted(d.items(),key = lamb ...

  3. CSS属性disabled和readonly的区别是什么

    在博客园中看到这样一篇文章,关于disabled和readonly的区别,以前还真的没有注意它们的区别,还是有必要知道它们的区别的,所以转载了. 这两个属性有类似之处,但是区别也是巨大的,之所以说类似 ...

  4. 七牛云java(服务端)通用工具类

    前言 需要安装lombok插件. 功能列表 上传本地文件 上传Base64图片 获取文件访问地址 上传MultipartFile 代码 pom.xml <dependency> <g ...

  5. Android 高德地图定位

    创建Key 打开高德开发平台 → 我的应用 → 创建应用 → 创建新Key 说明: 1.发布版安全码获取:用自己的签名打包成apk安装软件,用SHA1工具查看 2.调试版安全码获取: 直接运行安装软件 ...

  6. (网页)javascript如何用递归写一个简单的树形结构

    转自博客园: 现在有一个数据,需要你渲染出对应的列表出来: var data = [ {"id":1}, {"id":2}, {"id":3 ...

  7. 使用Visual Studio Team Services进行压力和性能测试(二)——压力测试执行

    使用Visual Studio Team Services进行压力和性能测试(二)--压力测试执行 1.点击Run test将会该压力测试进行排队,我们将看到等待测试代理屏幕.Visual Studi ...

  8. windows下安装Erlang

    由于RabbitMQ是用Erlang编写的,因此需要先安装Erlang环境,建议安装的版本新一点.下载地址点我试试 我这里下载的V20.3 x64版本,下载后点击开始安装,基本是一路next(默认设置 ...

  9. sql server递归

    with cte as ( select belongsAgent from [QPProxyDB].[dbo].[BS_ProxyInfo] where ProxyID = @ProxyID uni ...

  10. pip安装django的时候提示没有这个命令

    问题描述: 在安装pyenv安装完python的时候,用pip安装django提示没有这个命令 [root@zabbix ~]# pip install django== 2.0 pyenv: pip ...