2012-03-22 85 views
0

我有一個字符串如我想提取字符串

s1 = "Plug 1:L2SAEJ1772 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1772"; 

我想打印它像

Plug 1:L2SAEJ1771 

Plug 2:L2SAEJ1772 

Plug 3:L2SAEJ1773 

這可能嗎?如果是,那就幫我。

感謝

回答

1
String s1 = "Plug 1:L2SAEJ1772 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1772"; 
s1 = s1.replaceAll(" P", "\nP"); 
System.out.println(s1); 
1

您可以使用前瞻正則表達式(這樣,你不「輸」字「即插即用」):你砍那裏有一個「P時分割字符串

String[] splitted = s1.split(" (?=Plug)"); 
for (String s : splitted) { 
    System.out.println(s); 
} 
0

「(空格和P) 檢查s1.split()需要正則表達式 或者你可以通過一個for(int i = 0; i < s1.length(); i ++)中的字符串並檢查條件得到滿足。

0

您的示例需要更改。當輸入字符串不以7172結束,73

String s1="Plug 1:L2SAEJ1771 Plug 2:L2SAEJ1772 Plug 3:L2SAEJ1773"; 
    Pattern p = Pattern.compile("Plug\\s\\d:\\w*\\b"); 
    Matcher m = p.matcher(s1); 
    while(m.find()) 
     System.out.println(m.group()); 

回報

Plug 1:L2SAEJ1771 
Plug 2:L2SAEJ1772 
Plug 3:L2SAEJ1773 
0

簡單的正則表達式做的伎倆:\w+

您只需要在每個提取線下降: