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

解决方案 »

  1.   

    这个分离出来?
    java -> split('/') 不就行?
    实在不行,你中间不是都隔着分号.判断下?
      

  2.   

    不能正确地解决问题,如果字符串包含中文,是server/client端字符串编码格式不同,会导致乱码。
    如果server/client采用同一字符串编码格式,合并/拆分:
    // 合并 ---------------------------------------------------
    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]);如果server/client端字符串编码格式不同传送前进行编码转换。