-1

2 つの特定の文字/単語の間のスペースを削除する必要がある文字列があります。例を次に示します。

String Test = " testcase s(this_one_has_no_space) and s(this_one_has_ space )"

後続のすべての 's(' と ')' の間のスペースを削除したい。どうやってやるの?

4

2 に答える 2

0
        String test = " testcase s(this_one_has_no_space) and s(this_one_has_ space )";
        Pattern p = Pattern.compile("s\\([^\\)]*\\s+[^\\)]*\\)");
        Matcher m = p.matcher(test);
        while (m.find()) {
            String temp = m.group();
            test = test.replace(temp, temp.replaceAll("\\s", ""));
        }
        System.out.println(test);

これを試して、問題が解決できるかどうかを確認してください。

于 2013-09-20T19:56:45.023 に答える
0

次に、内側の括弧をキャプチャして、その文字列のスペースを置き換えてから
、文字列を元に戻します.Javaがコールバックを実行できる場合、これは問題ありません..

 //  s\\(([^()\\t\\ ]*[\\t\\ ][^()]*)\\)     

 s                                           
 \(                                         
 (                          # (1 start)      
      [^()\t\ ]*                           
      [\t\ ]                               
      [^()]*                                 
 )                          # (1 end)        
 \)                                         
于 2013-09-20T20:03:07.570 に答える