搜索
java - 如何将如下的信息变成model?
伊谢尔伦
伊谢尔伦 2017-04-17 13:58:17
[Java讨论组]

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伐。

全部回复(1)
伊谢尔伦

貌似用了 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, 浙江]
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号