“你好,阿米戈!玩够了吧!现在来完成你的任务。它们要比以前的任务更难,并且一定会改善你的处理器。这当然是我们所需要的。如果遇到困难,请与你的同事联系。他们一定会帮助你。”
20
任务
Java 核心, 第 9 级, 课程 11
跟踪更改
从控制台读取 2 个文件名:file1 和 file2。
这两个文件都包含文本,但 file2 是 file1 的更新版本。部分行仍然相同。
通过将这些行写入 lines 列表,你需要创建这些行的合并版本。
ADDED 和 REMOVED 标签不能连续使用,必须始终由 SAME 标签分隔。
为了清楚起见,示例包括空行。
原始文件和更新文件都不包括空行!
示例 1:
原始 更新 合并
file1: file2: 结果:(lines)
line1
20
任务
Java 核心, 第 9 级, 课程 11
你自己的 FileWriter
实现 FileConsoleWriter 的逻辑。
FileConsoleWriter 类必须包含名为 fileWriter 的 private clFileWriter 字段。
FileConsoleWriter 类必须对每个使用的构造方法初始化用于写入的 fileWriter。
FileConsoleWriter 类必须包含 5 个 write 方法和一个 close 方法。
public void write(char[] cbuf, int off, int len) throws IOException
public void write(int c) throws IOExcep
20
任务
Java 核心, 第 9 级, 课程 11
标记简介
从控制台读取包含 HTML 的文件的名称。
示例:
Info about Leela <span xml:lang="en" lang="en"><b><span>Leela Turanga
</span></b></span><span>Super</span><span>girl</span>
main 方法的第一个参数是标记名。例如,“span”。
显示与指定标记匹配的所有标记。
顺序应与文件中的顺序一致,每个标记位于一个新行上。
空格的数量、换行符 (\n) 或回车
12
任务
Java 核心, 第 9 级, 课程 11
计算薪水
main 方法的第一个参数是文件名。
指定文件的每个行包含下列各式:
名称值
其中,[名称] 是 String,[值] 是 double。[名称] 和 [值] 由空格分隔。
计算每个名称的所有值的总和。
显示所有数据,按升序对名称排序。
关闭流。
示例输入文件:
Peterson 2
Smith 6
Baxter 1.35
Peterson 3.1
示例输出:
Baxter 1.35
Peterson 5.1
Smith 6.0
12
任务
Java 核心, 第 9 级, 课程 11
首富
main 方法的第一个参数是文件名。
指定文件的每个行包含下列各式:
名称值
其中,[名称] 是 String,[值] 是 double。[名称] 和 [值] 由空格分隔。
计算每个名称的所有值的总和。
按字母表顺序显示具有最高总和的名称。
使用空格或新行分隔名称。
关闭流。
示例输入文件:
Peterson 0.501
Smith 1.35
Peterson 0.85
示例输出:
Peterson
20
任务
Java 核心, 第 9 级, 课程 11
约翰 约翰逊
main 方法的第一个参数是文件名。
指定文件的每个行包含下列各式:
名称 月 日 年
其中,[姓名] 是 String,可以包含空格分隔的数个字词。
[月] 为 int,[日] 为 int,[年] 为 int。
数据由空格分隔。
使用文件数据填写 PEOPLE 列表。
关闭流。
示例输入文件:
约翰 杰克 约翰逊 12 31 1987
文森特 5 15 2013
12
任务
Java 核心, 第 9 级, 课程 11
搜索正确的行
从控制台读取文件名。
显示只包含 words 列表中 2 个字词的所有的文件行。
关闭流。
示例:
words 包含字词 A、B 和 C
行:
C B A D // 包含 words 中的 3 个字词,拒绝
A B A D // 包含 words 中的 3 个字词,拒绝
D A D // 包含 words 中的 1 个字词,拒绝
D A B D // 包含 words 中的 2 个字词,接受,显示
doc catD A A D // 包含 words 中的 2 个字词,接受,显示
12
任务
Java 核心, 第 9 级, 课程 11
包含数字的字词
main 方法的第一个参数是 file1,第二个参数是 file2。
file1 包含多个行,行中包含空格分隔的字词。
将包含数字的所有字词写入 file2,例如,a1 或 abc3d。使用空格分隔字词。
关闭流。
20
任务
Java 核心, 第 9 级, 课程 11
替换数字
1.在 static 块中,初始化从 0 到 12(含)的 (数字, 词) 对。
例如,(0, "零")、(1, "一")、(2, "二")
2.从控制台读取文件名,然后读取文件的内容。
3.使用 map 将所有数字替换为字词。
4.在屏幕上显示结果。
5.关闭流。
示例文件数据:
这个价值为1美元,但这个为12美元。
变量名为 file1。
110 是一个数字。
控制台输出示例:
这个价值为一美元,但这个为十二美元。
变量名为 file1。
110 是一个数字。
12
任务
Java 核心, 第 9 级, 课程 11
长字词
main 方法的第一个参数是 file1,第二个参数是 file2。
file1 包含空格分隔的字词。
将逗号分隔的、超过 6 个字符的字词列表写入 file2。
file2 不应以逗号结束。
关闭流。
输出到 file2 示例:
lengthy,shortened,abbreviation
“你已经做完了所有事情?哦,这里有一些更难的练习题:”
12
任务
Java 核心, 第 9 级, 课程 11
镜像图像
1.从控制台读取文件名。读取文件的内容。
2.对于文件中的每个行:
2.1. 反转所有字符的顺序。
2.2. 显示结果。
3.关闭流。
示例输入文件:
我是一名程序员。
阿米戈
示例结果:
。员序程名一是我
戈米阿
12
任务
Java 核心, 第 9 级, 课程 11
上下文广告
使用你自己的 Reader 包装类替换 main 方法中 System.out 对象。
你的 Reader 包装类应每隔一次调用 println 就显示一次上下文广告。
调用 testString 的现有 printSomething() 方法。
将 System.out 变量重新恢复为原始流。
广告文本:“CodeGym - 在线 Java 课程”
示例输出:
第一
第二
CodeGym - 在线 Java 课程
第三
第四
CodeGym - 在线 Java 课程
第五
12
任务
Java 核心, 第 9 级, 课程 11
更正错误。类和接口
此程序只有 1 个逻辑错误。
请找到并修复。