日期:2014-05-19  浏览次数:20619 次

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

------解决方案--------------------
把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();
------解决方案--------------------
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)+""替换应该可以
------解决方案--------------------
 // 将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));
        }
------解决方案--------------------
我绝的你截取前面9个和12后面的几个 在加上你要替换的  这样可能简单点
------解决方案--------------------
str1=str1.substring(0,10)+str2+str1.charAt(11)+str2+str2+str1.subString(14,str1.length);
------解决方案--------------------
引用:
// 将str1 5.7.8位替换成str2
        String str1 = "123456789";
        String str2 = "wer";
        List<String> list = new ArrayList<String>();