我从JSON获得了大约一百个url字符串。例如:
media.life.com/homes/1000000/10000/6500/6404/6404_1625646_**b.jpg**
media.life.com/homes/1000000/10000/6500/6404/6404_189765_**b.jpg**
media.life.com/homes/1000000/10000/6500/6404/6404_162_**b.jpg**
media.life.com/homes/1000000/10000/6500/6404/6404_532535677_**b.jpg**
media.life.com/homes/1000000/10000/6500/6404/6404_1612452_**b.jpg**
media.life.com/homes/1000000/10000/6500/6404/6404_10976562**_b.jpg**
如您所见,这些网址中唯一常见的是结尾“b.jpg”
如何将字符 b 替换为其他字符?
我尝试过这种方法:
public String changeCharInPosition(int position, char ch, String str){
char[] charArray = str.toCharArray();
charArray[position] = ch;
return new String(charArray);
}
这是我打电话的时候:
hs.thumbNailUrl = changeCharInPosition(65, 'l',hs.thumbNailUrl);
但 b 的位置总是会改变,所以这种方法效率很低。
答案 0 :(得分:1)
如果你总是只有一个具有该值的字符,你可以使用.replace()来替换该字符。
public static void main(String args[]) {
String x = new String("amedia.life.com/homes/1000000/10000/6500/6404/6404_1625646_**b.jpg**");
x = x.replace('b', 'y');
}
<强>输出强>
amedia.life.com/homes/1000000/10000/6500/6404/6404_1625646 _ ** ** y.jpg
现在,如果您尝试根据字符的索引替换,可以使用StringBuilder并使用子字符串查找b的位置,并通过从总长度中减去b之后的字符数来查找b的位置。
public static void main(String args[]) {
StringBuilder x = new StringBuilder("amedia.life.com/homes/1000000/10000/6500/6404/6404_1625646_**b.jpg**");
x.setCharAt(x.length() - 7, 'y');
}
<强>输出强>
amedia.life.com/homes/1000000/10000/6500/6404/6404_1625646 _ ** ** y.jpg
修改强>
第三种选择:
这里我们将在'b'的最后一个索引处替换char。
public static void main(String args[]) {
String x = new String("amedia.life.com/homes/1000000/10000/6500/6404/6404_1625646_**b.jpg**");
x = x.replace(x.charAt(x.lastIndexOf('b')), 'y');
System.out.println(x);
}
现在显然你可以遍历并为每个字符串使用一个新字符。
答案 1 :(得分:0)
将您的通话从
更改为changeCharInPosition
hs.thumbNailUrl = changeCharInPosition(65, 'l', hs.thumbNailUrl);
到
hs.thumbNailUrl = changeCharInPosition(hs.thumbNailUrl.indexOf("b.jpg"),
'l', hs.thumbNailUrl);
答案 2 :(得分:0)
您可以使用String.lastIndexOf(String)来查找另一个String中最后一个String。
e.g。
private String replace(String url, String thumnailUri){
String toReplace = "**b.jpg**";
int lastBIndex = url.lastIndexOf(toReplace);
return url.substring(0, lastBIndex) + thumnailUri;
}
您也可以使用String.replace(String,String),例如
url.replace("**b.jpg**", hs.thumnailUri);