2、代码实例
//通过Jsoup获取table中对应标签的信息
private static void HTMLParserMapInit() throws IOException {
Document document = Jsoup.parse(new File("D:\\information\\test.html"), "utf-8");
Elements table_title = document.select(".title");
Elements tables = document.select(".left");
for(int i=0;i<table_title.size();i++) {
String title = table_title.get(i).text();
String keyLevel1 = "";
String keyLevel2 = "";
String value = "";
String tag_rowspan = "";
String tag_colspan = "";
String tag_class = "";
String tag_text = "";
String title = "";
String table = tables.get(i);
Elements tr = table.select("tr");
for(Element eTr : tr){
Elements td = eTr.select("td");
for(Element eTd : td){
tag_rowspan = eTd.attr("rowspan");
tag_colspan = eTd.attr("colspan");
tag_class = eTd.attr("class");
tag_text = eTd.text();
if(!tag_colspan.equals("")) {
title += tag_text + ",";
}
if((tag_class.equals("class2"))) {
keyLevel1 = tag_text;
}else if((tag_class.equals("class1"))) {
keyLevel2 = tag_text;
}else if(tag_class.equals("")){
value += tag_text+",";
}
}
if(!(keyLevel1.equals("")&&keyLevel1.equals(""))) {
if(!value.equals("")) {
value = value.substring(0,value.length() - 1);
shiftInformationHashMap.put(keyLevel1 + "," + keyLevel2, value);
}
value = "";
}
}
title = title.toString().substring(0,title.length() - 1);
System.out.println("title,"+title);
System.out.println("hashMap,"+shiftInformationHashMap.toString());
}
}
将HTML中数据解析成hashmap,一切就一目了然了。
五、Map转为Bean
public static <T, V> T map2Bean(Map<String,V> map,Class<T> clz) throws Exception{
T obj = clz.newInstance();
Field field = null;
for(String key : map.keySet()) {
field = obj.getClass().getDeclaredField(key);
field.setAccessible(true);
field.set(obj, map.get(key));
}
return obj;
}
六、解析CSV文件
1、CSV文件

2、Bean类
@Data
public class ScoreBean {
private Object id;
private Object score;
}
3、读取CSV文件方法
public static List<HashMap<String, Object>> readCSVToList(String filePath) throws Exception {
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(filePath));
String[] headtilte = reader.readLine().split(",");
String line = null;
while ((line = reader.readLine()) != null) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
String[] itemArray = line.split(",");
for (int i = 0; i < itemArray.length; i++) {
hashMap.put(headtilte[i], itemArray[i]);
}
list.add(hashMap);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != reader) {
reader.close();
}
}
return list;
}
4、测试类
public static void main(String[] args) throws Exception {
String path = "D:\\scoreInfo.csv";
List<HashMap<String, Object>> list = readCSVToList(path);
for(HashMap hashMap:list) {
BeanUtil.HashMapToBeanUtil(hashMap,ScoreBean.class);
### 最后
**为什么我不完全主张自学?
①**平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
**应该学哪些技术才能达到企业的要求?(下图总结)**
**[Java全套资料免费领取方式:戳这里](https://gitee.com/vip204888/java-p7)**


教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
**应该学哪些技术才能达到企业的要求?(下图总结)**
**[Java全套资料免费领取方式:戳这里](https://gitee.com/vip204888/java-p7)**
[外链图片转存中...(img-COPhODwV-1628579225500)]
[外链图片转存中...(img-yETulbhc-1628579225502)]
版权声明:本文为m0_60747327原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。