String str1="1,2,3,a,b,c"
转换成:
String str2="'1','2','3','a','b','c'"请问有什么比较好的方法。

解决方案 »

  1.   

    str1.replaceAll(",","','")
    然后在变换后的最前和最后加'
      

  2.   

    方法很巧妙哦,如果死办法就是根据“,”用split()方法分割 然后逐个加上‘ ’,再整合
      

  3.   

    哈哈,果然巧妙。如果是我自己做的话,就用split()了。思维问题啊,差距。。谢谢gardner2010
      

  4.   

    嗯,一楼的很好了
    我也来帖一个,呵呵public class StringTest {
    public static void main(String[] args) {
    String sStr = "1,2,3,4,5,6";
    System.out.println(sStr);

    String oStr = converseString(sStr);
    System.out.println(oStr);

    }

    public static String converseString(String sStr) {
    char[] charArray = new char[2*sStr.length()+1];
    for(int i=1; i<charArray.length+1; i++) {
    charArray[i-1] = (0 == i % 2) ? (sStr.charAt(i/2 - 1)) : ('\'');
    }
    return new String(charArray);
    }
    }
    //1,2,3,4,5,6
    //'1','2','3','4','5','6'
    //PS,效率问题没有考虑,O(∩_∩)O~
      

  5.   


    public class StringTest {
    public static void main(String[] args) {
    String sStr = "1,2,3,4,5,6";

    System.out.println(sStr);

    System.out.println(converseString(sStr));

    System.out.println(converseString(sStr.toCharArray()));

    }

    public static String converseString(String sStr) {
    long start = System.nanoTime();
    char[] charArray = new char[2*sStr.length()+1];
    for(int i=1; i<charArray.length+1; i++) {
    charArray[i-1] = (i % 2 == 0) ? (sStr.charAt(i/2 - 1)) : ('\'');
    }
    System.out.println("StringConverse:\t" + (System.nanoTime() - start));
    return new String(charArray);
    }

    public static String converseString(char[] cArray) {
    long start = System.nanoTime();
    char[] charArray = new char[2*cArray.length+1];
    for(int i=1; i<charArray.length+1; i++) {
    charArray[i-1] = (i % 2 == 0) ? (cArray[i/2 - 1]) : ('\'');
    }
    System.out.println("CharArrayConverse:\t" + (System.nanoTime() - start));
    return new String(charArray);
    }
    }
    //1,2,3,4,5,6
    //StringConverse: 37423
    //'1','2','3','4','5','6'
    //CharArrayConverse: 6857
    //'1','2','3','4','5','6'用字符数组貌似更快一些,意义不大了...
      

  6.   

    这个 String 类中提供的 replaceAll 方法没有办法实现这个添加“'”
    所以把api中的方法复制出来 稍微改动一下 就成了下面的appendAll方法System.out.println(appendAll("\\w",str1,"'"));
    public static String appendAll(String regex , String sourceString , String ){
    Matcher matcher = Pattern.compile(regex).matcher(sourceString);
    matcher.reset();

            boolean result = matcher.find();
            if (result) {
                StringBuffer sb = new StringBuffer();
                do {
                 String group = matcher.group();
                 matcher.appendReplacement(sb, +group+);
                    result = matcher.find();
                } while (result);
                matcher.appendTail(sb);
                return sb.toString();
            }else{
             return sourceString;
            }
    }
      

  7.   

    str1.replaceAll("\\A|\\Z|(?<=,)|(?=,)", "'")
      

  8.   

    火龙果大哥一出手果然不一样,学习了,稍微耍了个小聪明,见笑了:
    str1.replaceAll("(?idmsux-idmsux)", "'");
      

  9.   

    用split 分割到string array
    然后做个循环把单引号加上 str = "'"+stringarray[i]+"'"并且建个新array方回去...谁能解释下15楼的代码...不懂