Java用指定字符從大字符串中截取多串小字符串


        今天遇到一個需求,一個超長字符串中包含多個圖片地址,每個圖片地址長度是相同的,需要只把其中的圖片地址截取出來,實現過程如下:

        超長字符串: String sss = <p><img src="http://static.jhlnh.com/goods/201712/ad2564316c7941e989a420a857a335e3.jpg" style="float:left;" title="20171213_102317_000.jpg"/></p><p><img src="http://static.jhlnh.com/goods/201712/b24f2b4c52c54beb94ac51bbb8b2be35.jpg" style="float:left;" title="20171213_102317_002.jpg"/></p><p><img src="http://static.jhlnh.com/goods/201712/dcb0e87cee9141cf914023f44d8bafcb.jpg" style="float:left;" title="20171213_102317_003.jpg"/></p><p><img src="http://static.jhlnh.com/goods/201712/828688facd6f48b5ba6fec6706042799.jpg" style="float:left;" title="20171213_102317_004.jpg"/>

        需要把其中的綠色的圖片地址取出來放到集合中,代碼實現如下:

Pattern compile = Pattern.compile("src=");//創建切割對象,將以"src="切割字符串
String[] split = compile.split(sss);//執行切割,獲得字符串數組
List<Map<String,Object>> list = new ArrayList<>();//創建集合用來裝最終的圖片地址
for (String s1 : split) {//對字符串數組遍歷
if (s1.indexOf("http")!=-1) {//indexOf方法是尋找給定的字符"http"在字符串中的位置,並把該所在位置的索引值返回,如果找不到返回-1
String result = s1.substring(s1.indexOf("http"),s1.indexOf("jpg")+3);//substring方法用來截取字符串,包含頭不包含尾,所以第二個參數要加3,如果第二個參數給的是"pg",那就是加2
Map<String,Object> map = new HashMap<>();//新建map用來裝截取到的圖片地址
map.put("src", result);//把此圖片地址在map中的key全部命名為src,方便前端取數據
list.add(map);//把map裝入到集合,使用集合的目的是解決key相同的問題
}
}
System.out.println(list);//打印集合,最終的結果如下:

[

{src=http://static.jhlnh.com/goods/201712/ad2564316c7941e989a420a857a335e3.jpg},

{src=http://static.jhlnh.com/goods/201712/b24f2b4c52c54beb94ac51bbb8b2be35.jpg},

{src=http://static.jhlnh.com/goods/201712/dcb0e87cee9141cf914023f44d8bafcb.jpg},

{src=http://static.jhlnh.com/goods/201712/828688facd6f48b5ba6fec6706042799.jpg}

]

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM