2015-03-31 18 views
-1

假设我有这样的如何将字符串格式化为我在android中的期望?

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

字符串现在我想为

"k%m%r" 

意味着空格会从一开始和结束点被删除,如果它开始或得到的字符串格式化以%结束,那么只有这些%将被删除,如果这个%依次超过一个,那么这些%将被减少到只有一个%。

我该怎么做?

+0

是它总是“%----%在你的字符串模式? – 2015-03-31 19:04:23

+0

并不总是,但有时可能是 – Reyjohn 2015-03-31 19:05:15

+0

@Reyjohn这是什么问题,'trim和String.replace(“%%”,“%”);' – JBaba 2015-03-31 19:05:24

回答

1

这里是正则表达式的解决方案,

您如何根据您的需要,虽然写的装饰逻辑和修改。

与单个更换任何连续的字符,

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); 
    } 
} 
+0

您是否可以使用%为我提供一个完整的解决方案,并且如果有的话,还可以从第一个和最后一个位置移除它们? – Reyjohn 2015-03-31 19:25:39

+0

@Reyjohn现在检查。 – JBaba 2015-03-31 19:33:22

+0

它给了我%s%m%n,但我需要删除第一个%以及开始和结束点的空格,谢谢 – Reyjohn 2015-03-31 19:38:27

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

产品: ķ%M%R

相关问题