// 将str1 5.7.8位替换成str2 String str1 = "123456789"; String str2 = "wer"; List<String> list = new ArrayList<String>(); // 将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 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)+""替换应该可以 i == 7) { list.set(i, str2); } } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }我绝的你截取前面9个和12后面的几个 在加上你要替换的 这样可能简单点 i == 6 把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();str1=str1.substring(0,10)+str2+str1.charAt(11)+str2+str2+str1.subString(14,str1.length);