首页 > 如何将如下的信息变成model?

如何将如下的信息变成model?

English Chinese
Anhui 安徽
Beijing 北京
Chongqing 重庆
Fujian 福建
Gansu 甘肃
Guangdong 广东
Guangxi 广西
Guizhou 贵州
Hainan 海南
Hebei 河北
Heilongjiang 黑龙江
Henan 河南
Hong Kong 香港
Hubei 湖北
Hunan 湖南
Jiangsu 江苏
Jiangxi 江西
Jilin 吉林
Liaoning 辽宁
Macau 澳门
Inner Mongol (Neimenggu) 内蒙古
Ningxia 宁夏
Qinghai 青海
Shandong 山东
Shanxi 山西
Shanxi 陕西
Shanghai 上海
Sichuan 四川
Taiwan 台湾
Tianjin 天津
Tibet (Xizang) 西藏
Sinkiang(Xinjiang) 新疆
Yunnan 云南
Zhejiang 浙江
如何转换成List<State>
其中State有属性 englishName
chineseName
求一份代码。。。这些信息在文本文件中间~
最好是完整的。
Zhejiang 浙江这两个之间有一个或者多个空格~


貌似用了 Java8 的语法

javaimport java.util.*;
import java.io.*;

public class Parser {
    private List<State> states;

    public List<State> getStates() {
        return states;
    }

    public void parse(String filename) throws Exception {
        states = new ArrayList<>();
        try (FileInputStream stream = new FileInputStream(filename);
            InputStreamReader iReader = new InputStreamReader(stream, "utf-8");
            BufferedReader reader = new BufferedReader(iReader)) {
            String line;
            while ((line = reader.readLine()) != null) {
                parseLine(line.trim());
            }
        }
    }

    private void parseLine(String line) {
        int index = line.lastIndexOf(' ');
        if (index < 0) {
            return;
        }

        String chinese = line.substring(index + 1);
        String english = line.substring(0, index).trim();

        states.add(new State(english, chinese));
    }

    public static class State {
        public String englishName;
        public String chineseName;

        public State() {}
        public State(String english, String chinese) {
            englishName = english;
            chineseName = chinese;
        }

        @Override
        public String toString() {
            return "[" + englishName + ", " + chineseName + "]";
        }
    }

    public static final void main(String[] args) throws Exception {
        Parser parser = new Parser();
        parser.parse("data.txt");
        for (State s : parser.getStates()) {
            System.out.println(s);
        }
    }
}

下面是输出

[English, Chinese]
[Anhui, 安徽]
[Beijing, 北京]
[Chongqing, 重庆]
[Fujian, 福建]
[Gansu, 甘肃]
[Guangdong, 广东]
[Guangxi, 广西]
[Guizhou, 贵州]
[Hainan, 海南]
[Hebei, 河北]
[Heilongjiang, 黑龙江]
[Henan, 河南]
[Hong Kong, 香港]
[Hubei, 湖北]
[Hunan, 湖南]
[Jiangsu, 江苏]
[Jiangxi, 江西]
[Jilin, 吉林]
[Liaoning, 辽宁]
[Macau, 澳门]
[Inner Mongol (Neimenggu), 内蒙古]
[Ningxia, 宁夏]
[Qinghai, 青海]
[Shandong, 山东]
[Shanxi, 山西]
[Shanxi, 陕西]
[Shanghai, 上海]
[Sichuan, 四川]
[Taiwan, 台湾]
[Tianjin, 天津]
[Tibet (Xizang), 西藏]
[Sinkiang(Xinjiang), 新疆]
[Yunnan, 云南]
[Zhejiang, 浙江]
【热门文章】
【热门文章】