如何格式化字符串作为我在Android中的期望?

时间:2015-03-31 18:59:23

标签: java android regex string formatting

假设我有一个像这样的字符串

String s= " %K%%m%r%";

现在我希望将字符串格式化为

"k%m%r"

表示将从开始和结束点移除空格,如果它以%开头或结尾,那么只有那些%将被删除,如果%依次保持多于1,那么这些将被减少到仅一个%。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

String pattern = "(%+)";
String exclude = "(^%*)|(%*$)";
String candidate = "%K%%%m%%%%%r%";
System.out.println(candidate.trim().replaceAll(exclude,"").replaceAll(pattern, "%"));

<强>产生 ķ%米%R

答案 1 :(得分:1)

这是Regex Solution,

你如何编写修剪逻辑,并根据你的需要进行修改。

用单个字符替换任何连续字符

class My
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String data=" %s%%m%%%n";
        data = data.replaceAll("([%])(\\1{1,})", "$1");
        data = data.trim();
        data = data.substring(1,data.length()-1);
        System.out.println(data);
    }
}