你可以用一个希奇古怪的汉字做标识,把出错的可能降到最底我提供一个String s="\u9FA0";

解决方案 »

  1.   

    if string contains ";", let it be ";;". many app is do like this. demo:
    str1="aaa";
    str2="b;b";
    str3=";c;";str="aaa;b;;b;;;c;;";// recover:
    // split if odd ; 
    // get {"aaa","b;;b",";;c;;"}
    // ;; to ; {"aaa","b;b",";c;"}
      

  2.   

    看看csv是怎么实现的吧,两种csv,standard and microsoft.general speaking, using escaper转移符中文好象叫。
    但是string的append和split是很花时间的,所以并不推荐你这么做,如果你一定要做,如果量少用String concat方法,如果量多,typically more than couple of hundred, 千千万万要用StringBuffer append方法。你可一些个程序test一下用StringBuffer和String的时间差。
      

  3.   

    <XML>
     <item value="String1"/>
     <item value="String2"/>
     <item value="String3"/>
     <item value="String4"/>
     ...
    </XML>
      

  4.   

    用不可见字符不错,但是假如你的str1是从word文档力读出来的可以说不准了。
      

  5.   

    适用Yoinn(孤标傲视皆谁引,一样开花为底迟)提出的XML方案比较好。
      

  6.   

    !@#$%^&*
    用这个做分割符,肯定没不会有冲突 呵呵 :)
      

  7.   

    应该不能用随意的分割符,因为是字符型的,所以很可能与用户输入的正常信息冲突,建议还是用三个字段,照totodo(土豆仙)的方法做,这是数据库设计的基本原则,一定要绝对正确!
      

  8.   

    感谢大家的帮忙,我暂时决定用特殊的字符串做分隔符。 Yoinn的想法很好,由于时间的关系以后再试一下。 如wenwenwen112所说,这个问题的出现是由于数据库设计有问题,但我作为编码人员只能尽全去实现了,呵呵!
      

  9.   

    同意 wobelisk(),在具体说一下: 
    还是用";"分隔,在把str1和str2...strn组装成一个字符串的时候,对于str1和str2...strn中含有的“;”在其前面都再加上一个“;”,这样的话,则
    str1="abcd;ef"会变成"abcd;;ef"
    str2="hij;;kl"会变成"hij;;;kl"
    ...
    也就是说,若str含有连续的";"则使其比原来的多一个";",这样,在解析的时候,若遇到一个";"  说明是字符串的分隔符,若遇到多于一个";",说明使原来字符串包含的,处理时使其比原来少一个";"  即可。
      

  10.   

    我有一个做法,可以参考一下:
    例如:
    有4个字符串wjl1,wangjun,whss,ssff33 用“(数字)”表示字符串的长度
    用"[数字]”表示有几个字符串,并且其在构造后字符串的最前面。这样可以把上述的字符串构造如下字符串
    [4](4)(7)(4)(6)wjl1wangjunwhssssff33这个再从数据库中取值分解,可以看取出字符串的开头“[]”括起来的值是多少,以确定要分成几个字符串,然后接下来的以“()”括起来的部分是每个字符串的长度。把每个字符串长度取出后剩余的字符串即是所有字符串组合的字符串,按照每个字符串长度和该字符串是第一个字符串,即可取出该字符串。
    这样做就可以解决各位提出的字符串分割的问题了。
      

  11.   

    FlashDragon()的做法看起来类似数据压缩中的RLE编码算法(一种无损压缩)
    可以考虑一下
      

  12.   

    和C一样处理就可以了
    "any_char","any_char",...
    要是any_char本身就有引号和逗号,用转义符处理,
    即本来的
    adfd"ad,f
    转变成
    adfd\"ad\,f
    如果本来有 \ 则转成 \读取的时候去掉转义符就可以了。这是完全没有歧义的做法
      

  13.   

    RCS/CVS: @ --> @@
    Java: \ --> \Oracle: ' -->''
      

  14.   

    if one string contains "<XML>" or other xml tags, how to deal with?
    must use escape methods.