本章练习
1.定义一个长度为10的整数数组,可用于保存用户通过控制台输入的10个整数。并算它们的平均值、最大值、最小值。
疯狂java讲义第七章课后第1题答案

2.将字符串"ABCDEFG”中的"CD”截取出来;再将"B"、"F"截取出来。
疯狂java讲义第七章课后第2题答案

3.将A1B2C3D4E5F6G7H8拆分开来,并分别存入int[]和String[]数组。得到的结果为[1,2,3,4,5,6,7,8]和[A,B,C,D,E,F,G,H]。
疯狂java讲义第七章课后第3题答案

4.改写第4章练习中的五子棋游戏,通过正则表达式保证用户输入必须合法。

最关键的代码如下

boolean bool = Pattern.matches("\\d{1,2},\\d{1,2}",locate);

locate是用户输入的坐标
如果符合正则表达式就返回true,否则返回false;

5.改写第4章练习中的五子棋游戏,为该程序增加国际化功能。
关键代码是

//实现国际化private Locale myLocale = Locale.getDefault(Locale.Category.FORMAT);//获取默认的地区环境private ResourceBundle bundle = ResourceBundle.getBundle("game",myLocale);

然后有要输出的地方,改为bundle.getString(“key”)
就可以了
properties文件按照要求命名,和.java文件放在一个文件夹下,就可以运行无误了。也可以放在resources文件夹下,然后像下面这样写就好了

maven是在src/main/文件夹建立一个resources文件夹,保存properties文件。

当然还有一些地方需要测试一下

补充练习
1、打印运行java程序的参数。


public class Test
{public static void main(String[] args){for(int i = 0; i < args.length; i++){System.out.println(args[i]);}}
}

2、使用Scanner获取键盘输入,然后使用BufferedReader实现相同的效果

import java.util.*;
import java.io.*;
public class Test
{public static void main(String[] args) throws Exception{/*Scanner scanner = new Scanner(System.in);while(true){System.out.println(scanner.next());}*/BufferedReader br = new BufferedReader(new InputStreamReader(System.in));while(true){System.out.println(br.readLine());}}
}

3、使用System类的各种方法
疯狂java讲义第七章补充习题第3题答案

补充:SecurityManager

4、使用Runtime类的各种方法,和Process
疯狂java讲义第七章补充习题第4题答案

5、使用Object的方法。和自我克隆
疯狂java讲义第七章补充习题第5题答案

6、使用操作对象的工具类Objects
java的Objects方法详解

7、使用String,StringBuffer和StringBuilder和他们的各种方法,并尝试改变String变量,并判断是不是同一个对象
使用String、StringBuilder和StringBuffer

8、使用Math类的各种方法,
疯狂java讲义第七章补充习题第8题答案

9、使用ThreadLocalRandom和Random
疯狂java讲义第七章补充习题第9题答案

10、使用BigDecimal和普通的double,float进行对比。
疯狂java讲义第七章补充习题第10题答案

11、使用Date类的各种方法
疯狂java讲义第七章补充习题第11题答案

12、使用Calendar的各种方法
疯狂java讲义第七章补充习题第12题答案

13、使用java.time包下的各种类(书上列出的)
疯狂java讲义第七章补充习题第13题答案

14、使用正则表达式,可以尝试一下java爬虫,爬取豆瓣电影榜单。用上正则表达式,结合一下gui。使用正则表达式对爬取结果进行处理,取出所有电影的名称、上映年份、演员表、评分、评价人数,封面的url,并且通过url爬取出电影的图片。尝试保存为excel格式。还有在使用JDBC保存到数据库中。还有保存在文本。

String和正则表达式相关的方法使用

Pattern使用
突然发现String[] msgs = null;
msgs =
{
“a”,
“b”,
“c”
};
这样的语法是不允许的。

Pattern疯狂java讲义书上练习

Pattern的java文档练习

Matcher的java文档练习

补充:
还有很多书上没有的,文档里有的,先把书上的解决,
(1)使用正则表达式所支持的合法字符
在所支持的合法字符中的很多都不知道什么意思,要怎么用,几乎是全部

(2)使用正则表达式中的特殊字符

(3)使用预定义字符
使用正则表达式的预定义字符

(4)使用方括号表达式
表示枚举
表示范围:-
表示求否:^
表示“与”运算:&&
表示“并”运算

使用正则方括号表达式

补充汉字的Unicode范围
汉字 Unicode 编码范围

(5)边界匹配符
^和$就不再写了,和前面一样
\b和\B的解释如下:(来自菜鸟教程 )

其实可以这么理解,\b代表一个空格,反正不是一个字符,而\B代表一个字符,但是不会被匹配到,只是一个意思。这样就说的通了。
\A不知道怎么用,也看不懂
\G不知道怎么用,也看不懂
\Z不知道怎么用,也看不懂
\z不知道怎么用,也看不懂
java正则表达式中的边界匹配符

(6)三种模式的数量表示符
Possessive(占用模式)看不懂什么意思
Greedy(贪婪模式)
Reluctant(勉强模式)
java正则表达式三种模式的数量表示符

以下正式进入爬虫部分的练习:可以尝试一下java爬虫,爬取豆瓣电影榜单。用上正则表达式,结合一下gui。使用正则表达式对爬取结果进行处理,取出所有电影的名称、上映年份、演员表、评分、评价人数,封面的url,并且通过url爬取出电影的图片。尝试保存为excel格式。还有在使用JDBC保存到数据库中。还有保存在文本。
compile()内部的模式和要匹配的字符串,一个空格都不能差。

使用maven配置这个项目
DgroupId是包名
DartifactId是项目名

使用RandomAccessFile.write(buffer)图片会出错,使用RandomAccessFile.write(buffer,0,hasRead)就正常了,java文档里没有说是为什么

关于使用poi依赖后,报错log4j2可以参考这篇博客:
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the clas
配置报错那里,先不管,我猜测是因为poi里有对log4j2的使用,而我没有导入log4j2的依赖,所以报错。

保存为excel可以借鉴下面3篇博客
简单方法(打开的时候会提醒格式不对,但是能用)
java 将一个数组导出 txt 文件或 excel 里面的一个简单方法
借鉴依赖
java实现把对象数组通过excel方式导出的功能
借鉴import和使用
简单实现利用java将数据写入到excel

FileWriter、FileOutputStream还有RandomAccessFile这么多的io类,我都快晕了,不知道怎么用,估计要到那一章我才可能弄懂一点

接下来开始设计界面,用AWT和Swing
爬虫软件,第一次一定要用户选择一个文件夹
图片爬取器,一个网址输入框,一个文件夹选择按钮,一个爬取按钮,

心得:在匿名内部类内要用this引用外部类,需要用外部类名.this
想要让界面刷新的话,需要使用一个线程来运行耗时任务,不能占用主线程。

可以做一个专门爬取网页图片的软件,功能已经实现了,就UI对应的设计一下就好了。
做完了。。虽然有很大的局限,但是功能和界面是有的,对豆瓣这种网站还是可以爬取的。。。
java实现专门爬取网页图片的软件
让JFileChooser可以选择文件夹

然后我还有一个问题,就是maven的jdk和我cmd运行的jdk版本不一致,导致java -jar 会报错

尝试一下,浏览器访问127.0.0.1,然后自己写一个服务器,读取爬取的网页,返回给127.0.0.1.看看网页会不会显示
除了一些样式,谷歌浏览器打不开,火狐可以

不要被爬虫限制了眼界
做一个浏览器
浏览器其实就是通过网址把html源代码爬下来然后在浏览器显示

做一个搜索引擎
关于搜索引擎的构思,其实就是把网页的内容爬取下来,和链接进行对应,然后通过ListView展示,用户点击就可以跳转。手机做一个,电脑做一个

15、使用MethodHandle
疯狂java讲义第七章补充习题第15题答案

16、使用VarHandle
疯狂java讲义第七章补充习题第16题答案
文档的例子也要练习一下

17、使用Java国际化
疯狂java讲义第七章补充习题第17题答案

maven传入命令行参数

补充:
Locale练习
内部类
练习文档Locale.Builder
Locale.Builder有很多不明白的地方。涉及到语言学。

Locale.Category (一个枚举类)不知道为什么要存在这个类,为了获取界面显示值和默认语言环境的Locale?

练习java文档Locale.Category

Locale.FilteringMode(枚举类)
练习java文档Locale.FilteringMode
现在就是搞懂这个FilterMode干嘛用的。

Locale.IsoCountryCode(枚举类)
练习java文档Locale.IsoCountryCode
现在就是搞懂这个IsoCountryCode干嘛用的。

Locale.LanguageRange(不是枚举类)
练习java文档LanguageRange
很多不懂的地方

正式进入Locale练习
练习java文档Locale
很多不懂的地方

ResourceBundle练习
内部类
ResourceBundle.Control 很多不懂的地方
练习java文档ResourceBundle.Control
正式练习ResourceBundle
练习java文档ResourceBundle
也有一些不懂的

18、使用MessageFormat处理包含占位符的字符串
疯狂java讲义第七章补充习题第18题答案(MessageFormat)
AttributedCharacterIterator问题很大

补充:
补充ChoiceFormat使用

补充FieldPosition使用
没理解FieldPosition有什么用

练习java文档ParsePosition
ParsePosition没理解它有什么用,和FieldPosition很像,但是没有关系,不知道为什么

使用类文件替代属性文件,并且同时存在的情况下,类文件和属性文件的内容不同,看一下会调用谁:答案是类文件

19、使用类文件代替资源文件,实现国际化
疯狂java讲义第七章补充习题第19题答案(类文件代替资源文件,实现国际化)

20、使用java的api日志

尝试开关日志,调整日志级别
所以,Logger并不意味着,和System.out.println完全相同。它并不会输出到屏幕,而是输出到一个xml文件,设置级别,以及以上的才会输出到xml文件,也就相当于我认为的输出到屏幕。以下的,其实就算是被关闭了。。。和我原本的想法有点不同。
也不能把FileHandler导向System.out…
想要自己实现类似的功能,就只能设置一个全局变量,然后通过if(therelevel>level)
{
System.out.println("");
}
这样实现了。
应该还有其他办法。。
是会输出的!!:==不知道只有INFO更加重要的信息才会显示在标准输出上,==还可以用注册的Handler来指定输出,不过不知道怎么做

练习书和文档:
练习java文档System.Logger

结合国际化使用Systsm.Logger

尝试使用第三方日志框架(Log4J和SLF4J)

补充
练习java文档java.util.logging.Logger
有很多不会的

补充
练习java文档java.util.logging.LogRecord
很多不会的

练习java文档java.util.logging.ConsoleHandler

练习java文档java.util.logging.FileHandler
==int limit int count 这两个参数不理解,也不会用 ==

LogManager
变量
LOGGING_MXBEAN_NAME 不知道什么意思,涉及到ObjectName
构造器
LogManager()是protected修饰的,
方法
addConfigurationListener() 不会用,什么配置侦听器
addLogger()
getLogger() 并不需要之前有addLogger()
getLoggerNames()
getLoggingMXBean()废弃了,为什么废弃?
getLogManager()
getProperty() 不理解有什么property
readConfiguration() 不理解
readConfigurationListener() 不理解
reset() 不理解
updateConfiguration() 不理解 ,包含Function和BiFuncation,我连日志配置是什么我都不知道。。。

练习java文档java.util.logging.LogManager

21、使用NumberFormat格式化数字
先写一下,书上的例子

Locale中的这个LDML规范是什么?
答:一系列在解析和格式化上的改进已集成到 Java 9 中,这些改进让相关功能更趋近于 Unicode 区域设置数据标记语言(LDML,Locale Data Markup Language)。

nu和rg怎么同时写出来,nu-thai,u-nu-thai又是什么意思,rg又是什么意思

==这两个看不懂,怎么结合FieldPosition和ParsePosition

//内部类
练习java文档NumberFormat.Field
PREFIX 不知道为什么我运行后找不到这个变量
SUFFIX 和PREFIX一样,找不到这个变量
还有,为什么要用protected修饰构造器和方法?
答:
然后就只有访问权限的功能,他和public的区别只有,protected修饰的范围在不同包中只能被子类访问,而不能直接调用。
我们自己写的类是没有指定包的,所以默认是同一个包下
如果是java文档中的类,其实是处于不同的包下,所以不能直接new

另一个疑问:protected修饰的目的其实就是他的访问控制范围,不想让别的包下的类直接进行使用。但是为什么不想让别的包下的类直接使用,我就又困惑了?直接访问不是更方便吗?也不会出什么问题吧?我的问题是,为什么不能让别的包能够直接使用这个protected修饰构造器的类?

why you design a type of protected constructor?
关于protected访问控制符的真正含义和使用

NumberFormat.Style
不知道为什么报错,说找不到Style

练习java文档NumberFormat
isGroupingUsed() 没理解这个GroupingUsed()
parse() 不知道CurrencyInstance怎么parse。还有如果有ParsePosition遇到不能parse的格式也不会报错,而是返回null,如果没有ParsePosition则会报错,还有:??

parseObject() 不理解也不会用
setParseIntegerOnly() 设置了,但是不知道为什么无效

将NumberFormat集成到之前的国际化程序中,就显示苹果的价格

补充Currency
结合在NumberFormat练习里了

补充RoundMode 是一个枚举类 看看就好了

22、使用DateFormat格式化日期、时间。
书上练习
java文档练习
内部类
练习java文档DateFormat.Field
getCalendarField() 这里返回的是Calendar的Field,那上面那些变量有什么关系
ofCalendarField() 这里使用的是Calendar的Field,那上面的那些变量有什么用
readResolve()采用protected修饰

练习java文档DateFormat
format() FieldPosition这个参数不知道有什么用
getTimeZone()不知道这几个字段是什么意思

parseObject() 和parse()的区别是什么
setCalendar()不知道是什么意思,有什么用处?不是只是format或者parse吗,都不会用到这个calendar

补充TimeZone
getDSTSavings() 不知道什么意思
abstract getOffset(int era,int year,int month,int day,int dayOfWeek,int millsseconds) 没明白为什么这个抽象方法可以直接用,因为getDefault返回的TimeZone是这个类:class sun.util.calendar.ZoneInfo不是java.util.TimeZone。使用了多态,但是为什么不同包下也能这样使用呢?而且返回的都是28800000,另一个getOffset(long date)也是
关于这个问题的疑问?先有鸡还是先有蛋?
关于TimeZone的getDefault()方法的疑问
getRowOffset() 问题同上
hasSameRules() 不知道这个规则和偏移量的具体含义
inDaylightTime() 不理解怎么给定在夏时制的Date
setID() 可以随便设置,猜测是setter和getter方法,只是为了封装
setRawOffset() 不知道有什么用
练习java文档TimeZone

补充ZoneID

看不懂这句话
from() 还是看不懂这个TemporalAccessor
getRules()不理解这个规则
normalized() 不理解这个方法什么意思
of() 不理解那个aliasMap参数的含义
ofOffset() 不会用哪个ZoneOffset
systemDefault() 返回的是java.time.ZoneRegion
练习java文档ZoneId

补充

TextStyle
练习java文档TextStyle
不知道是和什么一起用的,应该是Format之类的,猜测是,

ZoneRules
重写了equals
getDaylightSavings()看不懂
getOffset()也看不懂
getStandardOffset()也看不懂
getTransition()也看不懂
还有getTransitionRules()、getTransitions()、getValidOffsets()都看不懂
isDaylightSavings()看不懂什么意思
还有isValidOffset()、nextTransition()、那个of()也不知道怎么用、previousTransition()
练习java文档ZoneRules

ZoneOffset
练习java文档ZoneOffset
有很多和Temporal相关的问题看不懂,先放着,

23、使用SimpleDateFormat格式化日期
关于Month部分说明看不懂
最后关于Synchronization中“it must be synchronized externally”是什么意思?
applyLocalizedPattern()和applyPattern()什么区别?
FieldPostion什么意思?怎么用?
AttributedCharacterIterator看不懂,先放着
get2DigitYearStart() ??没看懂
DateFormatSymbol??没懂
toLocalizedPattern()和toPattern()什么区别?
这题的答案其实就是new 一个SimpleDateFormat然后使用.format()方法,就可以了。
练习java文档SimpleDateFormat

24、使用DateTimeFormatter完成格式化
因为format的参数是Temporal所以先放着
25、使用DateTimeFormatter解析字符串
注意这里书上出现了TemporalAccessor
format()和formatTo()涉及到TemporalAccessor先放着
一些方法能看的懂就不试了,还有很多涉及到Temporal这个相关的类,先放着
练习Java文档DateTimeFormatter

26、char[]和String之间相互转换

import java.util.*;
public class TransTest
{public static void main(String[] args){char[] chs = {'a','b','c'};System.out.println(new String(chs));String s = "iutiror";System.out.println(Arrays.toString(s.toCharArray()));}
}

27、设计一个例子,使用java和c语言交互。参考p250页的注意。
第二步一直有问题,用下面的指令就可以了

不知道为什么还是报错了

我都弄好了,还是报了一个很奇怪的错误。只能以后再试试了
大概步骤知道了
1、先写好java文件,然后用javac -h . xxx.java
2、写一个.c文件,#include一下第一步得到的.h文件,然后复制.h中的方法,到这个c文件中,添加上形参名字,然后编译成.dll文件,
3、然后就可以在java中System.loadLibrary("")这个.dll文件,后面就可以调用了。

28、说出不同日期格式器的特点,以及如何选择。
NumberFormat、DateFormat、SimpleDateFormat、DateTimeFormatter
NumberFormat应该是用在类似小数,还有货币这方面的。而其他的DateFormat都是用于日期的。
然后DateFormat是SimpleDateFormat的父类。
DateFormat主要用于比较正常的日期格式,他设定好了的格式,供选择,比如FULL,SHORT,LONG这样的
而SimpleDateFormat则是可以自己设置日期的格式,更加灵活,也更加强大。
DateTimeFormatter则是和其他的类关系比较密切,比如Temporal还有Zone。format只能用在TemporalAccessor对象上,所以不是太好用。所以比较常用的就是SimpleDateFormat。

29、p252的ProcessHandle类
supportsNormalTermination()这个正常的关闭,我不太理解
练习Java文档ProcessHandle

以上的题目,把java文档过一遍是必须的

疯狂java讲义第七章课后习题答案相关推荐

  1. 疯狂java讲义第五章课后习题答案

    1.编写一个学生类,提供name.age.gender.phone.address.cmail成员变量,且为每个成员变量提供 seter.geter方法.为学生类提供默认的构造器和带所有成员变量的构造 ...

  2. 疯狂java讲义第七章补充习题第12题答案

    12.使用Calendar的各种方法 变量 ALL_STYLES AM AM_PM APRIL areFieldsSet AUGUST DECEMBER DST_OFFSET ERA FEBRUARY ...

  3. 郑莉版java第三章答案_java语言程序设计(郑莉)第七章课后习题答案.docx

    java语言程序设计(郑莉)第七章课后习题答案.docx 还剩 10页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: if (matrix.isTria ...

  4. 《Python语言程序设计》王恺 机械工业出版社 第七章课后习题答案

    第七章 I/O编程与异常 7.7 课后习题 (1)利用 os 模块查看当前系统的名字,应当使用 os.name . (2)利用 os 模块获取当前系统平台路径的分隔符,应当使用 os.sep . (3 ...

  5. 疯狂java讲义第六章课后第4题答案

    4.定义一个类,该类用于封装一桌梭哈游戏,这个类应该包含桌上剩下的牌的信息,并包含5个玩家的状态信息:他们各自的位置.游戏状态(正在游戏或已放弃).手上已有的牌等信息.如果有可能,这个类还应该实现发牌 ...

  6. 【最详细】数据结构(C语言版 第2版)第七章课后习题答案 严蔚敏 等 编著

    所有章节答案合集-->传送门 1.选择题 ( 1)对 n 个元素的表做顺序查找时, 若查找每个元素的概率相同, 则平均查找长度为 (). A. (n-1)/2 B . n/2 C. (n+1)/ ...

  7. 牛顿法求临界水深c语言程序,水力学第七章课后习题答案

    8.12梯形断面土渠,底宽b =3m ,边坡系数m =2,水深h =1.2m ,底坡i =0.0002,渠道受到中等养护,试求通过流量. 解: ()()1.23 1.22 6.48A h b hm = ...

  8. 数据库原理与应用第三版何玉洁第七章课后习题答案

    1 提高数据的查询效率 2 聚集索引,非聚集索引, 聚集索引首先按聚集索引列的值对数据进行物理排序,然后在此基础上直接建立索引B树, 非聚集索引系统直接再现有数据存储顺序的基础之上直接建立索引B树,B ...

  9. 黄迪明版c语言课后答案,《C语言程序设计教程》(主编黄迪明、余勤)第七章课后习题答案...

    在阅读代码前,先说一下这本书的在版编目(CIP)数据:C语言程序设计教程/黄迪明.余勤主编.--北京:国防工业出版社,2006.5 ISBN 7-118-04516-0 所有代码均在VS2013中成功 ...

  10. 《工程伦理》网课第七章课后习题答案

最新文章

  1. WebView加载HTML时禁止超链接跳转
  2. ABAP程序性能优化
  3. 逻辑错误有哪些c语言,c语言程序,现在出现逻辑错误,哪位高手指点下啊。。。...
  4. 关联查询的延迟加载是怎么实现的?
  5. linux svn 常用命令
  6. erp系统服务器都是维护些什么意思,erp系统维护服务器维护管理文档.doc
  7. 制作html弹窗,js制作一个简单的div弹窗:
  8. 无任何网络提供程序接受指定的网络路径解决方法
  9. PHP查询函数调用堆栈
  10. 职场 | 算法是怎样决定你的职业生涯的
  11. 递归算法教学设计java,递归算法数字游戏教学软件的设计|java递归算法经典实例...
  12. java的mergesort函数_MergeSort -- 归并排序
  13. 计算机专业英语教程第七版,经典_计算机专业英语教程.pdf
  14. matlab2010反复激活
  15. 20-50人,拓展基地_拓展训练_拓展基地_拓展公司推荐_嗨牛团建
  16. [NOIP模拟测试30]题解
  17. 【AI能否取代设计师】「Stable Diffusion」AI绘画黑科技将告诉你答案
  18. 【经济学视频课程】科斯定理的本质…
  19. 计算机未来发展报告,2020-2026年中国电子计算机行业发展深度调研与未来趋势报告...
  20. Redis中的缓存穿透、雪崩、击穿的原因以及解决方案(详解)

热门文章

  1. 行业领先!5G投资1100亿! 20个中国移动5G成功案例分享( 业绩+案例 )
  2. python 课程设计扫雷报告_《扫雷课程设计报告.doc
  3. DELPHI中MessageBox的用法
  4. 74LS138译码器的IP核设计
  5. JAVA调起clearcase_Eclipse集成配置管理工具ClearCase (ccrc_for_eclipse)
  6. 看了三篇韩寒的博客文章
  7. 应用统计学学什么科目_应用统计学专业考研需考哪些科目
  8. 详解MATLAB在最优化计算中的应用(pdf版)
  9. 《管理的实践》读书心得摘录
  10. U盘解决 日立硬盘 c1门