如何用单个字符替换多组字符

时间:2013-09-13 09:00:48

标签: java

我想用一个/多个字符替换多组字符。

示例:

输入

  

我想要你好RRRRRRRRRRRR我的名字RRR是RRRRRRRR arvind RR

输出

  

我想要你好A我的名字A是A arvind A

是否有任何库方法可以让我这样做?

我能想到的唯一方法是遍历每个角色,看看下一个角色是否相同。我会注意开始和结束索引,并在字符串上递归执行此操作直到结束。

5 个答案:

答案 0 :(得分:7)

您可以使用String#replaceAll(String regex, String replacement)方法。它使用正则表达式作为第一个参数,并替换每个匹配项。

String s = "i want hello RRRRRRRRRRRR My name RRR is RRRRRRRR arvind RR";
String result = s.replaceAll("R+", "A");

答案 1 :(得分:4)

你可以试试这个。 R+将替换一个或多个R

    String str = "i want hello RRRRRRRRRRRR My name RRR is RRRRRRRR arvind RR";
    System.out.println(str.replaceAll("R+","A"));

答案 2 :(得分:3)

试试这个,A将替换你的字符串中的2个或更多RR:

String str = "i want hello RRRRRRRRRRRR My name RRR is RRRRRRRR arvind RR";
String newStr = str.replaceAll("R{2,}", "A");

答案 3 :(得分:0)

String input = "i want hello RRRRRRRRRRRR My name RRR is RRRRRRRR arvind RR";
String output = input.replaceAll("R+" "A")

答案 4 :(得分:0)

StringUtils.containsOnly

String[] split = s.split(" ");
            for (String value : split)
            {
                if (StringUtils.containsOnly(value, "R"))
                {
                   value = value.replace(value, "A");
                }

                System.out.println(""+value);
            }

因为如果任何值包含ARRIVED。它只能将多个R替换为A.但是如果单词中只有R,则需要替换。