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);
------解决方案--------------------