我需要用字符串表达式
替换每个单词中的每个第二个字母public static void main(String[] args) {
StringBuffer stbf=new StringBuffer("la la la");
int k=1;
String a= "wkj" ;
String s1 = null;
for(int i=0;i<3;i++){
stbf.insert(1, a);
}
System.out.println(stbf);
因此我想看lwkj lwkj lwkj
答案 0 :(得分:4)
String input = "la la la";
String replacement = "wkj";
String output = input.replaceAll("\\b(\\w)\\w", "$1"+replacement);
System.out.println("input: " + input);
System.out.println("output: " + output);
正则表达式\b(\w)\w
将匹配序列中每个单词的前两个字符,并且替换使用附加到替换的第一个(捕获的)字符。
<强>输出:强>
la la la
lwkj lwkj lwkj
答案 1 :(得分:1)
没有提供问题的完整解决方案,这里有一些提示:
您应该将输入字符串(例如“la la la”)拆分为不同的单词。使用例如String.split(“”)。
然后您可以处理每个单词,保留第一个字符,插入替换字符串(示例为“wkj”)并附加第三个字符和任何其他字符。为此,您可以使用String.substring(0,1)来获取第一个字符以及从第三个字符位置开始的所有字符(String.substring(2))。看看String api。
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
希望有所帮助。
答案 2 :(得分:0)
String str = "la la la";
String answer = str.replaceAll("a", "wkj");
System.out.println("Replace String Is: " + answer);
str.replaceAll(“a”,“wkj”)