我正在尝试替换String
中的字符。
让我们说字符串是:
"yaaaaaaaay:axaxaxaxa:yaaaaaaay"
我希望java在a
之后将所有:
更改为下一个:
到X
。所以它看起来像这样:
"yaaaaaaaayXxXxXxXxXyaaaaaaay"
我尝试了以下操作,它确实将所有a
替换为X
。
public static String replaceMiddle(String input, char divider) {
return input.replace( "a", "X");
}
答案 0 :(得分:2)
public static void main(String[] args) {
String str ="yaaaaaaaay:axaxaxaxa:yaaaaaaay";
String[] strarr=str.split(":");
String str2=strarr[1].replace("a", "X");
String res=strarr[0]+str2+strarr[2];
System.out.println(res);
}
答案 1 :(得分:1)
可以使用Regex
执行此类操作public static String replaceMiddle(String input, char divider) {
String result = input;
Matcher matcher = Pattern.compile(":(\\w+):").matcher(input);
if(matcher.find()){
String mid = matcher.group(1).replace( "a", "X");
result = matcher.replaceAll(":" + mid + ":");
}
return result;
}
不完全确定您使用divider
,但我认为您打算像这样使用它:
public static void main (String[] args) {
String input = "yaaaaaaaay:axaxaxaxa:yaaaaaaay";
System.out.println(replaceMiddle(input, ':'));
}
public static String replaceMiddle(String input, char divider) {
String result = input;
String regex = divider + "(\\w+)" + divider;
Matcher matcher = Pattern.compile(regex).matcher(input);
if(matcher.find()){
String mid = matcher.group(1).replace( "a", "X");
result = matcher.replaceAll(divider + mid + divider);
}
return result;
}
答案 2 :(得分:1)
实现这一目标的一个简短方法是通过这样做:
String s = "yaaaaaaaay:axaxaxaxa:yaaaaaaay";
s = s.replace(s.substring(s.indexOf(":"), s.lastIndexOf(":")),
s.substring(s.indexOf(":"), s.lastIndexOf(":")).replace("a", "X"));
<强>输出强>
yaaaaaaaay:XxXxXxXxX:yaaaaaaay