各位好:
   我想把一个字符串的某几位用其他几位字符来替换,怎么实现?
   比如:String str1 = "ssxxxxsssssxxxsssssxxdddd";
        String str2 = "wer";
        我只想把str1中的第10、12、13位替换为str2字符串,其他的不变,如何实现哦?
   说明:10,12,13位的字符未知,str2是什么内容也不固定。
    javastring

解决方案 »

  1.   

    把str1转换成StringBuffer对象
    用下面这个方法来替换,具体代码也写给你看看,没测试,应该差不多
    replace(int start, int end, String str) //代码
    StringBuffer str=new StringBuffer(str1);
    str.replace(9, 9, String.VlaueOf(str2.charAt(0))); 
    str.replace(11, 12, String.VlaueOf(str2.charAt(1)+str2.charAt(2)))); 
    str1=str.toString();
      

  2.   

    str.replace(11, 12, String.VlaueOf(str2.charAt(1)+str2.charAt(2)))); 
    这一行可能编译错误
    String.VlaueOf(str2.charAt(1)+str2.charAt(2)))
    可以用str2.charAt(1)+str2.charAt(2)+""替换应该可以
      

  3.   

     // 将str1 5.7.8位替换成str2
            String str1 = "123456789";
            String str2 = "wer";
            List<String> list = new ArrayList<String>();
            for (int i = 0; i < str1.length(); i++) {
                list.add(str1.substring(i, i + 1));
            }
            for (int i = 0; i < list.size(); i++) {
                if (i == 4 || i == 6 || i == 7) {
                    list.set(i, str2);
                }
            }
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
      

  4.   

    str1=str1.substring(0,10)+str2+str1.charAt(11)+str2+str2+str1.subString(14,str1.length);
      

  5.   

    Quote: 引用 5 楼 qq418716640 的回复:

    str.有道理
      

  6.   

    这种比较好用用 substring  和indexof