常用工具类
1.MD5加密
import org.apache.commons.codec.digest.DigestUtils; public class MD5Util { public static String getMD5(byte[] source) { String s = null; char hexDigits[] = { // 用来将字节转换成 16 进制表示的字符 '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; try { java.security.MessageDigest md = java.security.MessageDigest .getInstance("MD5"); md.update(source); byte tmp[] = md.digest(); // MD5 的计算结果是一个 128 位的长整数, // 用字节表示就是 16 个字节 char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符, // 所以表示成 16 进制需要 32 个字符 int k = 0; // 表示转换结果中对应的字符位置 for (int i = 0; i < 16; i++) { // 从第一个字节开始,对 MD5 的每一个字节 // 转换成 16 进制字符的转换 byte byte0 = tmp[i]; // 取第 i 个字节 str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字节中高 4 位的数字转换, // >>> // 为逻辑右移,将符号位一起右移 str[k++] = hexDigits[byte0 & 0xf]; // 取字节中低 4 位的数字转换 } s = new String(str); // 换后的结果转换为字符串 } catch (Exception e) { e.printStackTrace(); } return s; } public synchronized static String getMD5(final String source) { return DigestUtils.md5Hex(source); } }
2、解码编码
public class UrlEncoder { public static void main(String[] args) { String name = "上海"; String address = "%E4%B8%8A%E6%B5%B7"; try { name = java.net.URLEncoder.encode(name, "utf-8"); address = java.net.URLDecoder.decode(address, "utf-8"); System.out.println(name); System.out.println("--->"+address); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
3、xml转json
public class Xml_json { public static void main(String[] args) { //fidder返回数据为xml,通过hutool的json包可以转换为json。 String xml = ""; JSONObject json =XML.toJSONObject(xml); System.out.println(json); } } 14038 2 1210811666 住宅 2 163 43 30 18 2.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 43054 6.57 -0.78 2050.00 2018-05-30 03:02:26.523 5,130,61,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,5,139,48,6,0,0,0,0, 2,17,11,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,2,19,8,1,0,0,0,0, 1:250.0-280.0~2:320.0-410.0~3:370.0-585.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -43.05 612 0.06 0.55 121.51358795166016 31.083389282226562 121.5136,31.0854_121.5137,31.0851_121.5131,31.0853_121.5131,31.0850_121.5132,31.0847_121.5138,31.0846_121.5133,31.0845_121.5126,31.0844_121.5119,31.0842_121.5120,31.0839_121.5127,31.0841_121.5134,31.0842_121.5139,31.0844_121.5138,31.0840_121.5139,31.0837_121.5139,31.0834_121.5139,31.0832_121.5132,31.0830_121.5125,31.0828_121.5122,31.0851_121.5114,31.0849_121.5116,31.0845_121.5124,31.0847_121.5127,31.0837_121.5120,31.0835_121.5121,31.0831_121.5129,31.0833_ 27 2575,黄浦一中心世博小学,l _ 1210811666 2005-09-28 1 0 2825.0000 3650.0000 4200.0000 0 0 22 0 1300.0000 0 124626 浦江世博家园 0 优质教育 近地铁 0 0 0 1 sh https://m.fang.com/xiaoqu/sh/1210811666.html 2 1210423238 住宅 2 630 134 77 66 5.0 0 1 0 上海 浦东 三林 中外环间 sanlin.fang.com/ 60096 11.59 4.04 4800.00 2018-05-30 03:02:26.523 180,324,194,1,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,8,130,193,398,0,0,0,0, 15,34,27,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,14,21,43,0,0,0,0, 1:305.0-442.0~2:336.0-680.0~3:436.0-740.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -4.00 1829 0.19 0.83 121.53052520751953 31.15558433532715 121.5323,31.1576_121.5314,31.1576_121.5291,31.1570_121.5291,31.1565_121.5283,31.1566_121.5278,31.1565_121.5344,31.1574_121.5283,31.1552_121.5291,31.1555_121.5287,31.1549_121.5298,31.1554_121.5307,31.1556_121.5307,31.1561_121.5300,31.1559_121.5307,31.1575_121.5300,31.1574_121.5280,31.1562_121.5283,31.1557_121.5289,31.1560_121.5307,31.1566_121.5312,31.1567_121.5336,31.1567_121.5341,31.1569_121.5330,31.1571_121.5323,31.1570_121.5315,31.1572_121.5330,31.1565_121.5299,31.1565_121.5347,31.1572_121.5337,31.1575_121.5330,31.1576_ 31 15599,尚博实验小学,l _ 1210423238 2006-06-01 1 0 3925.0000 4800.0000 6300.0000 0 0 80 0 1500.0000 0 359704 0 优质教育 近地铁 11 104 506 2351 sh https://m.fang.com/xiaoqu/sh/1210423238.html 2 1210349950 住宅 2 127 80 21 34 2.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 44329 10.47 3.22 2400.00 2018-05-30 03:02:26.523 7,77,62,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,7,81,62,0,0,0,0,0, 2,12,8,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,2,11,9,0,0,0,0,0, 1:270.0-270.0~2:339.0-445.0~3:388.0-480.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -36.84 563 0.06 0.55 121.51268005371094 31.08095932006836 121.5140,31.0828_121.5141,31.0825_121.5142,31.0823_121.5142,31.0820_121.5143,31.0817_121.5129,31.0811_121.5136,31.0813_121.5144,31.0814_121.5144,31.0812_121.5137,31.0810_121.5130,31.0808_121.5131,31.0806_121.5138,31.0807_121.5145,31.0809_121.5130,31.0825_121.5123,31.0823_121.5125,31.0818_121.5132,31.0821_121.5135,31.0816_121.5127,31.0814_ 20 2575,黄浦一中心世博小学,l _ 1210349950 2005-09-28 1 0 2250.0000 3600.0000 5000.0000 0 0 33 0 1550.0000 0 0 优质教育 近地铁 0 0 0 1 sh https://m.fang.com/xiaoqu/sh/1210349950.html 2 1210011548 住宅 2 77 13 20 10 5.0 0 1 0 上海 黄浦 蓬莱公园 内环以内 penglaigongyuan.fang.com/ 98103 14.60 1.77 12900.00 2018-05-30 03:02:26.523 3,71,21,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,0,8,13,78,0,0, 0,15,4,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,0,1,2,16,0,0, 1:0.0-0.0~2:750.0-1250.0~3:1050.0-1450.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 3.20 682 0.07 1.5 121.49764251708984 31.205318450927734 121.4978,31.2058_121.4988,31.2060_121.4986,31.2055_121.4989,31.2056_ 4 2410,上外黄浦外国语小学,l _ 1210011548 2001-01-01 1 0 0.0000 10300.0000 0.0000 0 0 14 0 0.0000 0 0 优质教育 近地铁 8 28 152 639 sh https://m.fang.com/xiaoqu/sh/1210011548.html 2 1210273544 住宅 2 470 82 33 34 3.5 0 1 0 上海 宝山 顾村 外环以外 gucun.fang.com/ 39302 4.24 0.30 3300.00 2018-05-30 03:02:26.523 80,372,24,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,246,229,10,0,0,0,0,0, 8,20,6,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,21,12,3,0,0,0,0,0, 1:210.0-251.0~2:246.0-320.0~3:285.0-430.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -2.94 2159 0.22 1.20 121.3725814819336 31.355194091796875 121.3754,31.3549_121.3751,31.3553_121.3748,31.3557_121.3746,31.3553_121.3714,31.3545_121.3750,31.3546_121.3744,31.3544_121.3739,31.3547_121.3740,31.3551_121.3741,31.3555_121.3743,31.3558_121.3734,31.3561_121.3724,31.3548_121.3726,31.3561_121.3718,31.3545_121.3720,31.3555_121.3714,31.3553_121.3712,31.3556_121.3744,31.3549_121.3711,31.3548_121.3709,31.3552_121.3731,31.3549_121.3732,31.3553_121.3734,31.3557_121.3719,31.3558_121.3726,31.3553_121.3726,31.3557_121.3721,31.3550_121.3716,31.3548_ 29 16204,上海市宝山区宝虹小学,l _ 1210273544 2007-06-01 1 0 2700.0000 3450.0000 3640.0000 0 0 82 0 1500.0000 182 0 优质教育 近地铁 24 185 831 2001 sh https://m.fang.com/xiaoqu/sh/1210273544.html 2 1210811660 住宅 2 200 70 26 32 2.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 43864 10.58 1.28 1900.00 2018-05-30 03:02:26.523 7,122,97,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,4,93,63,90,0,0,0,0, 2,13,12,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,1,10,9,11,0,0,0,0, 1:282.0-320.0~2:370.0-420.0~3:400.0-570.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 5.55 1196 0.12 0.8 121.5081787109375 31.088144302368164 121.5095,31.0879_121.5073,31.0873_121.5071,31.0875_121.5071,31.0879_121.5095,31.0882_121.5093,31.0884_121.5092,31.0887_121.5070,31.0881_121.5068,31.0884_121.5092,31.0890_121.5087,31.0877_121.5079,31.0875_121.5078,31.0879_121.5085,31.0881_121.5084,31.0886_121.5076,31.0884_121.5068,31.0887_121.5074,31.0888_121.5083,31.0890_121.5089,31.0892_ 20 2575,黄浦一中心世博小学,l _ 1210811660 2006-04-13 1 0 1900.0000 3450.0000 4290.0000 0 0 19 0 1600.0000 0 124626 浦江世博家园 0 优质教育 近地铁 4 27 208 685 sh https://m.fang.com/xiaoqu/sh/1210811660.html 2 1823619942 住宅 2 2 1 0.0 0 1 0 上海 上海周边 昆山 中环以外 13620 5.35 1.00 1747.00 2018-05-30 03:02:26.523 4,108,322,39,9 0,50,50,80,80,100,100,120,120,150,150,200,200,300,300,+∞_0,48,26,203,198,44,6,0, 2,34,56,11,4 0,50,50,80,80,100,100,120,120,150,150,200,200,300,300,+∞_0,21,7,32,42,12,2,0, 1:63.0-180.0~2:46.0-129.0~3:60.0-155.0~4:87.0-180.0~5:128.0-180.0~99:0.0-0.0~ 0 0.28 1070 0.11 1.00 121.02478790283203 31.25845718383789 121.0247,31.2584_121.0245,31.2614_121.0248,31.2600_121.0261,31.2585_121.0250,31.2617_121.0242,31.2596_121.0242,31.2584_121.0243,31.2579_121.0247,31.2596_121.0248,31.2589_121.0253,31.2578_121.0253,31.2583_121.0257,31.2590_121.0241,31.2590_121.0259,31.2596_121.0265,31.2599_121.0257,31.2599_121.0262,31.2602_121.0264,31.2606_121.0257,31.2606_121.0243,31.2600_121.0244,31.2605_121.0260,31.2609_121.0259,31.2613_121.0259,31.2617_121.0250,31.2613_121.0244,31.2609_121.0246,31.2619_121.0260,31.2620_121.0260,31.2625_121.0256,31.2626_121.0247,31.2625_ 32 11108,昆山市千灯镇炎武小学,l _ 1823619942 2012-05-15 1 0 636.0000 1456.0000 1748.0000 0 0 0 0.0000 59 167226 0 优质教育 20 114 564 2028 sh https://m.fang.com/xiaoqu/sh/1823619942.html 2 1210035793 住宅 2 246 36 37 19 5.0 0 1 0 上海 黄浦 蓬莱公园 内环以内 penglaigongyuan.fang.com/ 95001 4.45 1.94 7350.00 2018-05-30 03:02:26.523 13,116,139,2,14 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,3,9,35,237,17,1, 3,16,16,0,1 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,1,3,9,27,2,0, 1:450.0-800.0~2:800.0-1160.0~3:1050.0-1670.0~4:0.0-0.0~5:2488.0-2488.0~99:0.0-0.0~ 0 2.08 1358 0.14 1.80 121.49624633789062 31.208965301513672 121.4959,31.2095_121.4966,31.2090_121.4964,31.2085_121.4971,31.2084_ 4 2410,上外黄浦外国语小学,l _ 1210035793 2005-05-02 1 0 3000.0000 9500.0000 11200.0000 0 0 15 0 2173.0000 2 286268 0 优质教育 近地铁 0 0 0 1 sh https://m.fang.com/xiaoqu/sh/1210035793.html 2 1210085723 住宅 2 97 5 15 3 5.0 0 1 0 上海 黄浦 董家渡 内环以内 dongjiadu.fang.com/ 86754 5.75 0.09 13000.00 2018-05-30 03:02:26.523 0,29,58,24,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,0,6,26,81,0,0, 0,6,7,2,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,0,0,3,4,9,0,0, 1:0.0-0.0~2:730.0-998.0~3:1180.0-1450.0~4:1650.0-1650.0~5:0.0-0.0~99:0.0-0.0~ 0 -7.14 856 0.09 2 121.5062255859375 31.218494415283203 121.5067,31.2186_121.5068,31.2190_121.5056,31.2183_121.5060,31.2192_121.5062,31.2192_121.5058,31.2183_121.5062,31.2192_121.5069,31.2186_ 8 1210085723 2007-02-28 1 0 6500.0000 10900.0000 15500.0000 0 0 12 0 3490.0000 21 16029 1 1 e 0 157352 0 近地铁 4 16 115 433 sh https://m.fang.com/xiaoqu/sh/1210085723.html 2 1211207376 住宅 2 168 5 32 4 2.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 27031 7.04 1.57 2300.00 2018-05-30 03:02:26.523 24,158,13,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,123,7,0,0,0,0,0,0, 5,21,5,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,19,3,0,0,0,0,0,0, 1:150.0-165.0~2:183.0-300.0~3:260.0-300.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 2.22 319 0.03 1.3 121.5075454711914 31.036701202392578 121.5063,31.0374_121.5061,31.0365_121.5067,31.0366_121.5076,31.0366_121.5073,31.0370_121.5076,31.0373_121.5061,31.0378_121.5061,31.0369_121.5067,31.0377_121.5074,31.0378_ 10 1211207376 1 0 1678.0000 2200.0000 0.0000 0 0 0 0.0000 0 116608 永康城 0 0 0 1 3 sh https://m.fang.com/xiaoqu/sh/1211207376.html 2 1210030756 住宅 2 256 17 77 10 5.0 0 1 0 上海 普陀 长寿路 内环以内 changshoush.fang.com/ 72787 -0.27 3.34 8500.00 2018-05-30 03:02:26.523 23,185,114,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,5,12,187,104,23,0,0, 7,38,29,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,2,4,44,22,4,0,0, 1:320.0-630.0~2:505.0-940.0~3:578.0-1320.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -17.07 1001 0.10 1.60 121.43745422363281 31.25000762939453 121.4380,31.2497_121.4372,31.2496_121.4364,31.2498_121.4362,31.2502_121.4373,31.2501_121.4368,31.2505_ 6 1935,上海市普陀区明山小学,l _ 1210030756 2004-05-01 1 0 6200.0000 10000.0000 13000.0000 0 0 12 0 2296.0000 5 159018 0 优质教育 近地铁 9 92 279 725 sh https://m.fang.com/xiaoqu/sh/1210030756.html 2 1211180602 住宅 2 343 24 29 12 4.0 0 1 0 上海 闵行 浦江 中外环间 pujiangzhen.fang.com/ 26414 5.62 -0.06 2500.00 2018-05-30 03:02:26.523 57,195,115,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,122,0,0,0,0,0,0,0, 7,16,6,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,8,0,0,0,0,0,0,0, 1:135.0-148.0~2:175.0-259.0~3:200.0-220.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 6.38 808 0.08 1.2 121.51332092285156 31.040353775024414 121.5117,31.0413_121.5123,31.0414_121.5129,31.0415_121.5135,31.0415_121.5135,31.0409_121.5125,31.0409_121.5117,31.0409_121.5117,31.0404_121.5135,31.0405_121.5135,31.0399_121.5116,31.0399_121.5117,31.0394_121.5126,31.0394_121.5135,31.0394_121.5126,31.0390_121.5116,31.0390_ 16 1211180602 2014-11-01 1 0 2100.0000 2500.0000 3096.0000 0 0 0 0.0000 0 116608 永康城 0 0 0 0 1 sh https://m.fang.com/xiaoqu/sh/1211180602.html 2 1210068552 住宅 2 131 31 46 11 4.0 0 1 0 上海 浦东 三林 中内环间 sanlin.fang.com/ 58329 3.26 0.23 6150.00 2018-05-30 03:02:26.523 12,85,62,5,2 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,6,29,121,9,11,0,0, 5,19,19,1,1 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,0,3,11,30,3,3,0,0, 1:345.0-480.0~2:400.0-800.0~3:420.0-1200.0~4:1119.0-1119.0~5:650.0-650.0~99:0.0-0.0~ 0 -5.38 927 0.09 2 121.51604461669922 31.16034698486328 121.5170,31.1607_121.5170,31.1611_121.5167,31.1615_121.5157,31.1612_121.5149,31.1609_121.5147,31.1607_121.5157,31.1607_121.5163,31.1610_121.5161,31.1600_121.5167,31.1600_121.5173,31.1603_121.5161,31.1605_121.5164,31.1596_121.5174,31.1598_ 14 2335,联丰小学,l _ 1210068552 2005-01-01 1 0 3883.0000 6200.0000 8000.0000 0 0 18 0 686.0000 93 0 优质教育 近地铁 4 42 218 778 sh https://m.fang.com/xiaoqu/sh/1210068552.html 2 1211177536 住宅 2 21 8 2.5 0 1 0 上海 闵行 浦江 中外环间 pujiangzhen.fang.com/ 25131 -2.18 -3.48 2400.00 2018-05-30 03:02:26.523 12,17,0,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,12,0,0,0,0,0,0,0, 3,5,0,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,3,0,0,0,0,0,0,0, 1:152.0-158.0~2:190.0-215.0~3:0.0-0.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 0.00 125 0.01 1.31 121.50997924804688 31.037254333496094 121.5089,31.0366_121.5089,31.0379_121.5095,31.0367_121.5100,31.0367_121.5100,31.0373_121.5095,31.0373_121.5090,31.0372_121.5094,31.0379_121.5100,31.0380_ 9 1211177536 2013-12-20 1 0 0.0000 0.0000 0.0000 0 0 0 0.0000 0 116608 永康城 0 0 0 0 1 sh https://m.fang.com/xiaoqu/sh/1211177536.html 2 1210934798 住宅 2 204 375 50 33 4.0 0 1 0 上海 浦东 三林 中内环间 sanlin.fang.com/ 56273 6.30 1.79 2200.00 2018-05-30 03:02:26.523 47,173,39,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,13,79,135,46,0,0,0,0, 7,33,10,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,3,14,25,10,0,0,0,0, 1:300.0-360.0~2:296.0-650.0~3:390.0-595.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -21.42 677 0.07 0.8 121.5254898071289 31.162761688232422 121.5253,31.1622_121.5259,31.1624_121.5265,31.1626_121.5238,31.1635_121.5245,31.1637_121.5252,31.1639_121.5259,31.1641_121.5250,31.1614_121.5269,31.1619_121.5274,31.1621_121.5273,31.1624_121.5267,31.1622_121.5261,31.1620_121.5253,31.1619_121.5247,31.1617_121.5247,31.1619_121.5255,31.1615_121.5270,31.1628_121.5268,31.1630_121.5261,31.1629_121.5255,31.1628_121.5249,31.1627_121.5262,31.1617_121.5244,31.1624_121.5242,31.1627_121.5240,31.1630_121.5248,31.1630_121.5253,31.1631_121.5258,31.1632_121.5266,31.1634_121.5263,31.1637_121.5257,31.1636_121.5251,31.1634_121.5245,31.1633_121.5239,31.1632_ 35 1210934798 2010-01-15 1 0 2500.0000 4800.0000 6000.0000 0 0 34 0 1800.0000 0 16312 1 1 e 0 158482 0 近地铁 11 105 350 1514 sh https://m.fang.com/xiaoqu/sh/1210934798.html 2 1211263958 住宅 2 80 24 2.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 29376 3.03 -0.64 2775.00 2018-05-30 03:02:26.523 32,66,4,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,70,3,0,0,0,0,0,0, 8,15,1,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,17,1,0,0,0,0,0,0, 1:157.0-215.0~2:210.0-258.0~3:300.0-300.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 18.08 245 0.02 1.2 121.54302978515625 31.045085906982422 121.5433,31.0452_121.5433,31.0456_121.5429,31.0455_121.5424,31.0451_121.5425,31.0447_121.5432,31.0447_ 6 1211263958 2013-01-01 1 0 0.0000 0.0000 0.0000 0 0 19 0 0.0000 0 112940 瑞和华苑 0 7 31 178 517 sh https://m.fang.com/xiaoqu/sh/1211263958.html 2 1210912770 住宅 2 71 13 21 3 2.0 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 36882 7.23 2.53 1665.00 2018-05-30 03:02:26.523 28,38,24,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,44,28,22,0,0,0,0,0, 4,12,5,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,9,8,5,0,0,0,0,0, 1:183.0-240.0~2:258.0-370.0~3:475.0-488.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -55.00 360 0.04 0.2 121.49950408935547 31.08383560180664 121.5005,31.0838_121.4998,31.0836_121.5001,31.0834_121.4990,31.0835_121.4983,31.0833_121.5003,31.0841_121.4997,31.0839_121.4990,31.0838_121.4982,31.0836_121.5003,31.0844_121.4988,31.0841_121.4980,31.0839_121.4999,31.0847_121.4984,31.0843_121.4989,31.0831_ 15 1210912770 2004-01-01 1 0 2913.0000 3900.0000 3767.0000 0 0 6 0 1285.0000 0 109378 景江苑 0 7 32 106 428 sh https://m.fang.com/xiaoqu/sh/1210912770.html 2 1210880172 住宅 2 128 29 32 14 3.5 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 35543 6.06 2.69 2500.00 2018-05-30 03:02:26.523 30,32,94,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,35,34,89,5,0,0,0,0, 6,6,18,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,6,8,17,1,0,0,0,0, 1:133.0-265.0~2:250.0-360.0~3:380.0-500.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -21.87 535 0.05 0.5 121.50155639648438 31.081403732299805 121.5009,31.0801_121.5012,31.0819_121.4996,31.0812_121.5000,31.0819_121.5017,31.0803_121.4999,31.0822_121.4991,31.0820_121.5017,31.0800_121.5016,31.0806_121.5008,31.0805_121.5013,31.0812_121.5006,31.0808_121.4999,31.0805_121.5012,31.0816_121.5005,31.0812_121.5009,31.0798_121.4997,31.0808_121.4994,31.0815_121.5007,31.0821_121.4991,31.0817_121.5006,31.0824_121.5004,31.0826_121.4997,31.0825_121.4990,31.0823_ 24 1210880172 2007-11-01 1 0 3400.0000 3200.0000 5053.0000 0 0 17 0 1725.0000 0 16607 1 1 e 0 109764 景舒苑 0 4 37 197 597 sh https://m.fang.com/xiaoqu/sh/1210880172.html 2 1211208346 住宅 2 131 5 25 3 3.0 0 1 0 上海 闵行 浦江 外环以外 pujiangzhen.fang.com/ 26409 4.14 -1.59 2800.00 2018-05-30 03:02:26.523 29,123,8,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,117,0,0,0,0,0,0,0, 6,17,2,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,15,0,0,0,0,0,0,0, 1:145.0-152.0~2:190.0-216.0~3:260.0-284.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 7.69 168 0.02 121.5047836303711 31.034862518310547 121.5050,31.0352_121.5050,31.0341_121.5049,31.0356_121.5038,31.0355_121.5040,31.0349_121.5049,31.0346_121.5040,31.0342_121.5041,31.0337_121.5049,31.0336_ 9 1211208346 2014-04-18 1 0 0.0000 0.0000 0.0000 0 0 5 0 0.0000 0 116608 永康城 0 8 44 224 704 sh https://m.fang.com/xiaoqu/sh/1211208346.html 2 1210612278 住宅 2 378 155 52 65 5.0 0 1 0 上海 浦东 三林 中外环间 sanlin.fang.com/ 58358 7.35 1.53 4500.00 2018-05-30 03:02:26.523 58,223,142,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,7,78,145,207,0,0,0,0, 11,30,11,0,0 0,200,200,300,300,400,400,500,500,800,800,1000,1000,2000,2000,3000,3000,+∞_0,2,14,19,19,0,0,0,0, 1:269.0-375.0~2:290.0-610.0~3:510.0-630.0~4:0.0-0.0~5:0.0-0.0~99:0.0-0.0~ 0 -4.25 1176 0.12 0.5 121.53450012207031 31.155460357666016 121.5334,31.1549_121.5345,31.1548_121.5340,31.1541_121.5347,31.1543_121.5337,31.1545_121.5354,31.1546_121.5361,31.1547_121.5366,31.1549_121.5357,31.1551_121.5354,31.1554_121.5362,31.1555_121.5359,31.1558_121.5354,31.1564_121.5347,31.1562_121.5347,31.1554_121.5339,31.1552_121.5340,31.1559_ 17 2319,浦东新区新时代小学,l _ 1210612278 2007-04-30 1 0 3400.0000 4900.0000 6600.0000 0 0 37 0 2400.0000 0 16427 1 1 e 0 105550 金禾新苑 0 优质教育 优质教育 近地铁 14 95 472 1337 sh https://m.fang.com/xiaoqu/sh/1210612278.html 什么是小区评级? 小区评级主要通过四个方面的维度综合评估,包括小区活跃度、小区物业、小区所在板块、小区的教育资源\r\n" + "根据这四个维度能够比较全面的认识该小区的软硬件信息,为购房者提供相对全面合理的购房参考 小区评级 14038 10 121.28390884399414 31.19502830505371
4、解析json
1.import org.json.JSONArray; import org.json.JSONObject; JSONObject json = new org.json.JSONObject(result); JSONArray list = json.getJSONArray("List"); 2.import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; //pom文件中需要添加依赖 //// com.alibaba //fastjson //1.2.68 // JSONObject json = JSONObject.parseObject(result); JSONArray list = json.getJSONArray("list ");
5、本地读取文件以及生成文件
1. import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; public class FileWrite { public static void wirteFile(String path, String value) { File file = new File(path); FileWriter fw = null; BufferedWriter writer = null; try { fw = new FileWriter(file); writer = new BufferedWriter(fw); writer.write(value); writer.flush(); } catch (Exception e) { e.printStackTrace(); } finally { try { writer.close(); fw.close(); } catch (Exception e) { e.printStackTrace(); } } } public static String readFile(String path) throws IOException { File file = new File(path); if (!file.exists() || file.isDirectory()) throw new FileNotFoundException(); FileInputStream fis = new FileInputStream(file); byte[] buf = new byte[1024]; StringBuffer sb = new StringBuffer(); while ((fis.read(buf)) != -1) { sb.append(new String(buf)); buf = new byte[1024]; } return sb.toString(); } } 2. public static void main(String[] args) { String filePath = "D:\\1.txt"; try { File file = new File(filePath); if(file.isFile() && file.exists()) { InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "utf-8"); BufferedReader br = new BufferedReader(isr); String lineTxt = null; while ((lineTxt = br.readLine()) != null) { System.out.println(lineTxt); } br.close(); } else { System.out.println("文件不存在!"); } } catch (Exception e) { System.out.println("文件读取错误!"); } }
6、生成实体类
private static final GenerateEntity INSTANCE = new GenerateEntity(); private String tableName;// 表名 private String[] colNames; // 列名数组 private String[] colTypes; // 列名类型数组 private int[] colSizes; // 列名大小数组 private boolean needUtil = false; // 是否需要导入包java.util.* private boolean needSql = false; // 是否需要导入包java.sql.* private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); private static final String SQL = "SELECT * FROM ";// 数据库操作 // TODO 需要修改的地方 private static final String URL = "jdbc:mysql://ip+端口/库名"; private static final String NAME = "admin"; private static final String PASS = "123456"; private static final String DRIVER = "com.mysql.jdbc.Driver"; private String packageOutPath = "com.test.model";// 指定实体生成所在包的路径 private String authorName = "smith.Shi";// 作者名字 private String[] generateTables = { "t_weibo_api_timeline_request" };// 指定需要生成的表的表名,全部生成设置为null // private static final String URL = "jdbc:sqlserver://ip+端口;DatabaseName=库名"; // private static final String NAME = "admin"; // private static final String PASS = "123"; // private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // private String packageOutPath = "node.bds.node_investing.model";// 指定实体生成所在包的路径 // private String authorName = "smith.shi";// 作者名字 // private String[] generateTables = { "investing_xianjin" };// 指定需要生成的表的表名,全部生成设置为null /** * 类的构造方法 */ private GenerateEntity() { } /** * @return * @description 生成class的所有内容 * @author paul * @date 2017年8月18日 下午5:30:07 * @update 2017年8月18日 下午5:30:07 * @version V1.0 */ private String parse() { StringBuffer sb = new StringBuffer(); sb.append("package " + packageOutPath + ";\r\n"); sb.append("\r\n"); // 判断是否导入工具包 if (needUtil) { sb.append("import java.util.Date;\r\n"); } if (needSql) { sb.append("import java.sql.*;\r\n"); } sb.append("import org.nutz.dao.entity.annotation.*;\r\n"); // 注释部分 sb.append("/**\r\n"); sb.append(" * tablename: " + tableName + "\r\n"); sb.append(" * \r\n"); sb.append(" * auth: " + authorName + "\r\n"); sb.append(" * \r\n"); sb.append(" * create time: " + SDF.format(new Date()) + "\r\n"); sb.append(" */ \r\n"); // 实体部分 sb.append("@Table(\"" + tableName + "\")"); sb.append("\r\n"); sb.append("public class " + getTransStr(tableName, true) + "{\r\n\r\n"); processAllAttrs(sb);// 属性 sb.append("\r\n"); processAllMethod(sb);// get set方法 sb.append("}\r\n"); return sb.toString(); } /** * @param sb * @description 生成所有成员变量 * @author paul * @date 2017年8月18日 下午5:15:04 * @update 2017年8月18日 下午5:15:04 * @version V1.0 */ private void processAllAttrs(StringBuffer sb) { for (int i = 0; i < colNames.length; i++) { if (i == 0) { sb.append(" @Id\r\n"); } sb.append(" @Column\r\n"); sb.append("\tprivate " + sqlType2JavaType(colTypes[i]) + " " + toStr(colNames[i]) + ";\r\n"); } } /** * @param sb * @description 生成所有get/set方法 * @author paul * @date 2017年8月18日 下午5:14:47 * @update 2017年8月18日 下午5:14:47 * @version V1.0 */ private void processAllMethod(StringBuffer sb) { for (int i = 0; i < colNames.length; i++) { sb.append("\tpublic void set" + toUperFirst(colNames[i]) + "(" + sqlType2JavaType(colTypes[i]) + " " + toStr(colNames[i]) + "){\r\n"); sb.append("\t\tthis." + toStr(colNames[i]) + "=" + toStr(colNames[i]) + ";\r\n"); sb.append("\t}\r\n"); sb.append( "\tpublic " + sqlType2JavaType(colTypes[i]) + " get" + toUperFirst(colNames[i]) + "(){\r\n"); sb.append("\t\treturn " + toStr(colNames[i]) + ";\r\n"); sb.append("\t}\r\n"); } } /** * @param str * 传入字符串 * @return * @description 将传入字符串的首字母转成大写 * @author paul * @date 2017年8月18日 下午5:12:12 * @update 2017年8月18日 下午5:12:12 * @version V1.0 */ private String initCap(String str) { char[] ch = str.toCharArray(); if (ch[0] >= 'a' && ch[0] <= 'z') ch[0] = (char) (ch[0] - 32); return new String(ch); } /** * @return * @description 将mysql中表名和字段名转换成驼峰形式 * @author paul * @date 2017年8月18日 下午4:55:07 * @update 2017年8月18日 下午4:55:07 * @version V1.0 */ private String getTransStr(String before, boolean firstChar2Upper) { // 不带"_"的字符串,则直接首字母大写后返回 if (!before.contains("_")) return firstChar2Upper ? initCap(before) : before; String[] strs = before.split("_"); StringBuffer after = null; if (firstChar2Upper) { after = new StringBuffer(initCap(strs[0])); } else { after = new StringBuffer(strs[0]); } if (strs.length > 1) { for (int i = 1; i < strs.length; i++) after.append(initCap(strs[i])); } return after.toString(); } /** * 首字母大写 */ private String toUperFirst(String s) { if (Character.isUpperCase(s.charAt(0))) return s; else return (new StringBuilder()).append(Character.toUpperCase(s.charAt(0))).append(s.substring(1)).toString(); } /** * 直接生成数据库对应字段名 */ private String toStr(String before) { return before; } /** * @return * @description 查找sql字段类型所对应的Java类型 * @author paul * @date 2017年8月18日 下午4:55:41 * @update 2017年8月18日 下午4:55:41 * @version V1.0 */ private String sqlType2JavaType(String sqlType) { if (sqlType.equalsIgnoreCase("bit")) { return "boolean"; } else if (sqlType.equalsIgnoreCase("tinyint")) { return "byte"; } else if (sqlType.equalsIgnoreCase("smallint")) { return "short"; } else if (sqlType.equalsIgnoreCase("int")) { return "int"; } else if (sqlType.equalsIgnoreCase("bigint")) { return "long"; } else if (sqlType.equalsIgnoreCase("float")) { return "float"; } else if (sqlType.equalsIgnoreCase("decimal") || sqlType.equalsIgnoreCase("numeric") || sqlType.equalsIgnoreCase("real") || sqlType.equalsIgnoreCase("money") || sqlType.equalsIgnoreCase("smallmoney")) { return "double"; } else if (sqlType.equalsIgnoreCase("varchar") || sqlType.equalsIgnoreCase("char") || sqlType.equalsIgnoreCase("nvarchar") || sqlType.equalsIgnoreCase("nchar") || sqlType.equalsIgnoreCase("text")) { return "String"; } else if (sqlType.equalsIgnoreCase("datetime")) { return "Date"; } else if (sqlType.equalsIgnoreCase("image")) { return "Blod"; } return null; } /** * * @description 生成方法 * @author paul * @date 2017年8月18日 下午2:04:20 * @update 2017年8月18日 下午2:04:20 * @version V1.0 * @throws Exception */ private void generate() throws Exception { // 与数据库的连接 Connection con; PreparedStatement pStemt = null; Class.forName(DRIVER); con = DriverManager.getConnection(URL, NAME, PASS); System.out.println("connect database success..."); // 获取数据库的元数据 DatabaseMetaData db = con.getMetaData(); // 是否有指定生成表,有指定则直接用指定表,没有则全表生成 ListtableNames = new ArrayList (); if (generateTables == null) { // 从元数据中获取到所有的表名 ResultSet rs = db.getTables(null, null, null, new String[] { "TABLE" }); while (rs.next()) tableNames.add(rs.getString(3)); } else { for (String tableName : generateTables) tableNames.add(tableName); } String tableSql; PrintWriter pw = null; for (int j = 0; j < tableNames.size(); j++) { tableName = tableNames.get(j); tableSql = SQL + tableName; pStemt = con.prepareStatement(tableSql); ResultSetMetaData rsmd = pStemt.getMetaData(); int size = rsmd.getColumnCount(); colNames = new String[size]; colTypes = new String[size]; colSizes = new int[size]; // 获取所需的信息 for (int i = 0; i < size; i++) { colNames[i] = rsmd.getColumnName(i + 1); colTypes[i] = rsmd.getColumnTypeName(i + 1); if (colTypes[i].equalsIgnoreCase("datetime")) needUtil = true; if (colTypes[i].equalsIgnoreCase("image") || colTypes[i].equalsIgnoreCase("text")) needSql = true; colSizes[i] = rsmd.getColumnDisplaySize(i + 1); } // 解析生成class的所有内容 String content = parse(); // 输出生成文件 File directory = new File(""); String dirName = directory.getAbsolutePath() + "/src/main/java/" + packageOutPath.replace(".", "/"); File dir = new File(dirName); if (!dir.exists() && dir.mkdirs()) System.out.println("generate dir 【" + dirName + "】"); String javaPath = dirName + "/" + getTransStr(tableName, true) + ".java"; FileWriter fw = new FileWriter(javaPath); pw = new PrintWriter(fw); pw.println(content); pw.flush(); System.out.println("create class 【" + tableName + "】"); } if (pw != null) pw.close(); } /** * @param args * @description 执行方法 * @author paul * @date 2017年8月18日 下午2:03:35 * @update 2017年8月18日 下午2:03:35 * @version V1.0 */ public static void main(String[] args) { try { INSTANCE.generate(); System.out.println("generate classes success!"); } catch (Exception e) { e.printStackTrace(); } } }
7.new 一个十秒执行的线程
//线程类 public class TestThread extends Thread { public void run() { while ( true ){ try { sleep( 6 * 1000 ); //这里可以写你自己要运行的逻辑代码 System.out.println( "一分钟运行一次" ); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //main方法 public static void main(String[] args) { // TODO Auto-generated method stub TestThread testThread = new TestThread(); testThread.start(); } }