2017-02-02 135 views
0

替換字符串我需要字符串表達式如何用繩子

public static void main(String[] args) { 

    StringBuffer stbf=new StringBuffer("la la la"); 
    int k=1; 
    String a= "wkj" ; 
    String s1 = null; 
    for(int i=0;i<3;i++){ 
     stbf.insert(1, a); 
    } 
    System.out.println(stbf); 

替換的每一個字每第二個字母,結果我希望看到lwkj lwkj lwkj

+0

那麼,什麼是你的代碼現在在做什麼?和你期待什麼? –

+0

'stbf = stbf.replaceAll(「la」,「lwkj」);'會做詭計 – emotionlessbananas

回答

4
String input = "la la la"; 
String replacement = "wkj"; 
String output = input.replaceAll("\\b(\\w)\\w", "$1"+replacement); 
System.out.println("input: " + input); 
System.out.println("output: " + output); 

正則表達式\b(\w)\w會匹配序列中每個單詞的前兩個字符,並且替換使用附加到替換的第一個(捕獲)字符。

輸出:

la la la 
lwkj lwkj lwkj 
1

沒有給出一個完整的解決問題的方法,這裏有一些提示:

  1. 你應該分裂您輸入的字符串(例如是「啦啦啦」 )變成不同的單詞。使用例如String.split(「」)。

  2. 然後,您可以處理每個單詞,保留第一個字符,插入替換字符串(例如「wkj」),並追加第三個和任何其他字符。爲此,可以使用String.substring(0,1)來獲取第一個字符和由第三個字符位置(String.substring(2))開始的所有字符。看看String api。

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

希望有所幫助。

0

String str = "la la la"; 
 
String answer = str.replaceAll("a", "wkj"); 
 
System.out.println("Replace String Is: " + answer);

str.replaceAll( 「A」, 「WKJ」)

+0

正確,但不是很可擴展 –