2015-01-04 53 views
-2

我有一个应该用新字符串替换字符串中的替代字符的程序。让我说我有...用Java中的特定字符串替换字符

String s1 =“JAVAJAVA”;
String s2 =“VA”;

输出:

VAVAVAVA

字在s1的每个替代指标应当与S2被替换。我试过使用StringBulider,但我无法继续进行下去。请有人可以帮我解决这个问题。感谢

+1

只要迭代串和取代比其它字符。 – xyz 2015-01-04 13:18:40

+1

你需要[编辑]你的问题,并包括你试图解决这个问题。 – Pshemo 2015-01-04 13:24:09

回答

4

试试这个:

s1 = s1.replaceAll(".(.)", s2+"$1"); 

说明:正则表达式每2个字符".(.)"匹配。第二个字符是“记住”(括号),所以你可以在更换部分重新使用它($1):

+0

谢谢。你能否详细解释我的工作方式?我不明白“。(”)和语法中的$ 1表达式 – Dev 2015-01-04 13:34:19

+0

它被称为“正则表达式”,是用于文本匹配/替换的非常强大的机制。看看这里http://docs.oracle.com/javase/tutorial/essential/regex/。点('.')只是“匹配任何字符”的通配符。 'F.O'匹配'FOO','FAO','FBO'等。 '..'匹配任何2个字符的序列。替换部分中的$ 1表示搜索模式中的第一个括号内的表达式,在我们的例子中,第二个字符在我们的搜索模式中由第二个点表示。所以我们将第二个字符从搜索模式“复制”到替换模式。 – geert3 2015-01-04 13:44:53

+0

我试着理解正则表达式,而令我困扰的部分是$ 1和(。)表达式。当我写..(。)这意味着VAvaVAva将作为输出,因为它匹配字符串中的两个字符。同样,如果我写。(。)它正在搜索一个字符,并正在取代VA ......如VAaVAaVAaVAa。但我不明白(。)和$ 1的目的。你能解释一下这部分吗? – Dev 2015-01-04 14:20:49

0

如果你想要去的不是正则表达式的其他方式等简单的解决方案就可以了,但正则表达式应该是首选一个

1)分割字符串为char阵列StringtoCharArray()功能

2 )通过运行循环

3装在备用位置新字符)转换回阵列字符串new String(charArray)