日期:2014-05-20  浏览次数:20696 次

java字符串分隔
DYNFLIGHT#A###2012/07/02 14:42:54#START#186###,以上字符串需要获取#号之间的内容,使用String的split方法不用分隔多个连续#号,请问有什么方法能分多个连续的#号,#号与#号之间没有值的时侯我希望能返回null。

------解决方案--------------------
没读懂你是什么意思,
"#号与#号之间没有值的时侯"split方法返回的是"",
你直接替换成null不就行了,
或者你是想要输出
DYNFLIGHT,A,2012/07/02 14:42:54,START,186
这样?
[code=java]
String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###";
String[] temp = str.split("#+");
for(String s : temp){
System.out.print(s + ",");
}
[/code]
------解决方案--------------------
你看能用不
Java code

public static void main(String[] args) {
        String str = "DYNFLIGHT#A###2012/07/02 14:42:54#START#186###";
        Pattern pattern = Pattern.compile("#");
        Matcher matcher = pattern.matcher(str);
        List<String> list = new ArrayList<String>();
        int startIndex = 0;
        while(matcher.find()){
            int endIndex = matcher.start();
            //这里可以判断str.substring(startIndex, endIndex).length() == 0替换成null
            list.add(str.substring(startIndex, endIndex));
            startIndex = endIndex + 1;
        }
        for(String s : list){
            System.out.print(s +",");
        }
    }