2020-07-27日报博客
1.完成的事情:
- 完成CodeGym Java基础level 8部分,并完成练习题。
- 阅读《大道至简》。
2.遇到的问题:
- 各种列表的使用方法以及区别,还有他们使用的合适条件。
3.明日计划:
/*taskKey="zh.codegym.task.task08.task0828"
月份编号
程序从键盘读取月份名称,然后在屏幕上使用如下短语显示月份编号:“May 是第 5 个月”。
使用集合。
Requirements:
1. 程序应从键盘读取一个值。
2. 程序应在屏幕上显示文本。
3. 程序必须使用集合。
4. 程序应从键盘读取月份的名称,并根据指定模板在屏幕上显示月份编号。*/
package zh.codegym.task.task08.task0828;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
/*
月份编号
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Map<String,String> map = new HashMap<String,String>();
map.put("January","January 是第 1 个月");
map.put("February","February 是第 2 个月");
map.put("March","March 是第 3 个月");
map.put("April","April 是第 4 个月");
map.put("May","May 是第 5 个月");
map.put("June","June 是第 6 个月");
map.put("July","July 是第 7 个月");
map.put("August","August 是第 8 个月");
map.put("September","September 是第 9 个月");
map.put("October","October 是第 10 个月");
map.put("November","November 是第 11 个月");
map.put("December","December 是第 12 个月");
System.out.println(map.get(reader.readLine()));
}
}
/*taskKey="zh.codegym.task.task08.task0829"
软件更新
任务:程序确定哪个家庭(姓氏)居住在具有指定编号的房屋中。
新任务:程序应处理城市而不是房屋编号:
示例输入:
芝加哥
卡彭
纽约市
洛克菲勒
西雅图
盖茨
西雅图
示例输出:
盖茨
Requirements:
1. 程序应在屏幕上显示文本。
2. 程序应从键盘读取值。
3. Solution 类必须包含一个方法。
4. 程序应根据所输入的城市显示家庭的姓氏。*/
package zh.codegym.task.task08.task0829;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
软件更新
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Map<String,String> map = new HashMap<String,String>();
while (true) {
String city = reader.readLine();
if (city.isEmpty()) break;
String family = reader.readLine();
map.put(city,family);
}
String houseCity = reader.readLine();
System.out.println(map.get(houseCity));
}
}
/*taskKey="zh.codegym.task.task08.task0830"
有关算法的任务
任务:从键盘输入 20 个单词(仅使用拉丁字母),并以字母顺序显示它们。每行显示一个单词。
Requirements:
1. 程序应在屏幕上显示文本。
2. 程序应从键盘读取值。
3. Solution 类必须包含三个方法。
4. main() 方法应调用 sort() 方法。
5. sort() 方法应调用 isGreaterThan() 方法。
6. 所显示的单词应按字母顺序排序。*/
package zh.codegym.task.task08.task0830;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] array = new String[20];
for(int i = 0; i < array.length; i++) {
array[i] = reader.readLine();
}
sort(array);
for (String x : array) {
System.out.println(x);
}
}
public static void sort(String[] array) {
String term;
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (isGreaterThan(array[j], array[j + 1])){
term = array[j];
array[j] = array[j + 1];
array[j + 1] = term;
}
}
}
}
// 字符串比较方法:‘a’大于‘b’
public static boolean isGreaterThan(String a, String b) {
return a.compareTo(b) > 0;
}
}