2015-03-31 51 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

相關問題