当前位置: 代码迷 >> J2SE >> java截取字符串有关问题,请高手帮忙啊待!
  详细解决方案

java截取字符串有关问题,请高手帮忙啊待!

热度:249   发布时间:2016-04-24 13:26:36.0
java截取字符串问题,请高手帮忙啊!在线等待!!!!!!!!!!
我现在有一个字符串,例如:"FI:Z;P,SC,BE,CT"
我想把FI,SC,BE,CT单独取出来放到ArrayList中,再根据FI把Z和P放到另一个ArrayList中.


------解决方案--------------------
String str = "FI:Z;P,SC,BE,CT";
String s1[] = str.split(",");
int index;
String left;
String right;
ArrayList list1 = new ArrayList();
String s2[];
HashMap map = new HashMap();
for (int i = 0; i < s1.length; i++){
index = s1[i].indexOf(":");
if (index > 0){
left = s1[i].substring(0, index - 1);
list1.add(left);
right = s1[i].substring(index);
s2 = right.split(";");
map.put(left, s2);
} else {
list1.add(s1[i]);
}
}
没有太理解lz需求,上面的list1和map大概是lz想要的。
------解决方案--------------------
将这个字符串映射成一个 Map<String, List<String>> 的对象,
key 为 FI、SC、BE、CT 之类的;value 为 key 冒号后以分号间隔的 List

Java code
import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;public class Test {    public static void main(String[] args) {        String str = "FI:Z;P,SC,BE,CT";        Map<String, List<String>> map = process(str);                // 遍历输出        for(Map.Entry<String, List<String>> entry : map.entrySet()) {            System.out.println(entry.getKey());            List<String> list = entry.getValue();            if(list.size() > 0) {                for(String s : list) {                    System.out.println("  " + s);                }            }else{                System.out.println("  <null>");            }        }    }        public static Map<String, List<String>> process(String str) {        String[] step1 = str.split(",");        Map<String, List<String>> map = new LinkedHashMap<String, List<String>>();        for(String s : step1) {            String[] step2 = s.split(":");            List<String> list = new ArrayList<String>();            if(step2.length > 1) {                String[] step3 = step2[1].split(";");                list = Arrays.asList(step3);            }            map.put(step2[0], list);        }                return map;    }}
  相关解决方案