java - 如何将如下的信息变成model?
伊谢尔伦
伊谢尔伦 2017-04-17 13:58:17
0
1
451

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 浙江这两个之间有一个或者多个空格~

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(1)
伊谢尔伦

It seems to use Java8 syntax

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);
        }
    }
}

The following is the output

[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, 浙江]
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!