qdwangqun 2009-04-18 16:06
浏览 472
已采纳

如何用java分隔带"\t"的字符串

现在有一字符串
"a b c d "

分隔符为 \t

但用java的split和StringTokenizer分隔后,显示的字符长度为4

请问如何解决该问题,谢谢。

 


问题补充:
应该是11呀,不应该是4,你可能少看了我的问题

"a b c d "后面有很多\t分隔符

问题补充:
还是不行呀,总是少掉最后一个字符

"BODY 134 1008 20090401000000 02 0 0 0"
这个字符串,用lovewhzlq给的方法总是少掉最后一个0,长度应该是16,但解析后的结果确是15,是哪里的原因呢?

  • 写回答

3条回答 默认 最新

  • wanghaolovezlq 2009-04-18 17:40
    关注

    [code="java"]
    用这种方法可以正确得到

    import java.util.*;
    import java.util.regex.*;

    public class Split {
    public static void main(String[] args)
    {
    String str = " a b c d ";
    Pattern p = Pattern.compile("\t");

        Matcher m = p.matcher(str);
    
        //保存结果数组
        List<String> ret = new ArrayList<String>();
        //临时变量
        String temp = null;
        int index = 0;
        while(m.find())
        {
            int start = m.start();
    
            temp = str.substring(index, start);
            ret.add(temp);
    
            index = m.end();
    
        }
    
        System.out.println(ret);
    }
    

    }

    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?