假设我有一个像这样的字符串
String s= " %K%%m%r%";
现在我希望将字符串格式化为
"k%m%r"
表示将从开始和结束点移除空格,如果它以%开头或结尾,那么只有那些%将被删除,如果%依次保持多于1,那么这些将被减少到仅一个%。
我该怎么做?
答案 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);
}
}