2016-03-23 5 views
0

私は書式設定メソッドを書く必要がありました。このメソッドでは、文字列、書式設定するテキスト入力、および必要な行の長さをパラメータとして使用します。Javaの正規表現では参照を渡すことは可能ですか?

また、特定の規則がありました。その1つは、単語が希望の長さよりも長い場合は、それだけで行にする必要があります。

だからこれを行う簡単な方法は、正規表現式で、おそらくより少なくともとされて非空白文字列を検索し、かつそれぞれの側にある2つの\ nは自分自身にマッチし、これを置き換えることでした...

おそらくコードは明確です:私たちの希望行の長さは、これは実際にうまく動作します10

String s = line.replaceAll("([ \t])(\\S{10,})([ \t])", "\n$2\n"); 
    System.out.println(s); 

で想像してみましょう。

私の問題は、行の長さをフォーマットメソッドにパラメータとして渡す必要があることです。このパラメータを参照できる唯一の方法は、参照を使用することです。例えば:

パブリック静的文字列の形式(文字列s、int型){...

//もの

を欠落

文字列S = line.replaceAll(「([\ T]) (\ S {長さ、})([\ t]) "、" \ n $ 2 \ n "); System.out.println(s);

しかしその場合には、それはエラーを返します:PatternSyntaxExceptionの

が私の質問です:私たちが望む出現数の引数として、(代わりに番号の)数量詞への参照を使用するためにどのような方法があります合わせる?それは本当に役に立つと思われるので、私はそれが動作していないように驚いた。また、多くの人がこの問題に遭遇したようには見えません。

答えて

2

この

String s = line.replaceAll("([ \t])(\S{"+length+",})([ \t])", "\n$2\n"); 
System.out.println(s); 
を試してみてください
関連する問題