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

字符串解析的问题
我试了一些方法,始终不能正确地解决问题,我从一个ServerSocket用TCP传输一些信息到client端,假如信息里面包括fileName,subject,category,把他们弄成一个字符串str = fileName/r/nsubject/r/ncategory,传到另外一端,我想把fileName,subject分别解析出来

求高人指点

------解决方案--------------------
这个分离出来?
java -> split('/') 不就行?
实在不行,你中间不是都隔着分号.判断下?
------解决方案--------------------
不能正确地解决问题,如果字符串包含中文,是server/client端字符串编码格式不同,会导致乱码。
如果server/client采用同一字符串编码格式,合并/拆分:
Java code
// 合并 ---------------------------------------------------
        StringBuilder strBuilder = new StringBuilder(fileName);
        strBuilder.append("/r/n");
        strBuilder.append(subject);
        strBuilder.append("/r/n");
        strBuilder.append(category);
        System.out.println(strBuilder.toString());
        
        // 拆分 ---------------------------------------------------
        String[] strDest = strBuilder.toString().split("/r/n");
        if(strDest.length != 3)
            System.err.println("error: strDest.length != 3");
        
        // fileName
        System.out.println("fileName: " + strDest[0]);
        
        // subject
        System.out.println("subject: " + strDest[1]);
        
        // category
        System.out.println("category: " + strDest[2]);

------解决方案--------------------
str.split("/");