S o私はtoString()
メソッドの独自のバリエーションを作成しています。 toString(Object... args)
。そう文字列に%s、%d、%nが含まれているかどうかを調べるJava Regex
this.toString("%8s", this.log, "%n%s %s", this.theMap, "%s", this.countIterator());
ように、私は、渡された引数は、通常の文字列またはフォーマット文字列であるかどうかを確認するために、次のコードを使用していることから。 args[i].toString().contains("%\\-?[1-9]s?*")
正規表現が動作していない
if(args[i].getClass().getName() == "java.lang.String") {
if(args[i].toString().contains("%\\-?[1-9]s?*")) {
format = args[i].toString();
} else {
s += args[i].toString();
}
}
私は args[i].toString().matches("%\\-?[1-9]s?*")
を使用する場合、しかし、それだけではない%s %9s
か%s%s %s
とインスタンスの%s
または%9s
を持つStringのインスタンスが、動作します。また、d
またはn
と正規表現のs
を交換すると動作します。
私はあなたの車輪を再発明する理由を知っています。ちょうどString.format()
を使用してください。私はこれを私の心に持っていて、解決するまで何もできません。
私はまた、コピーしようとしたjava.util.Formatter
クラスの
"%(\\d+\\$)?([-#+ 0,(\\<]*)?(\\d+)?(\\.\\d+)?([tT])?([a-zA-Z%])"
正規表現を貼り付けるが、それは上記と同じことをやっただけ%s
または%9s
のために働きました。
また、Formatterクラスでは、開発者がPaternクラスのインスタンスでMatcherクラスのインスタンスを使用し、forループを使用してStringを実行し、パターンの各インスタンスをマッチングして配列リスト。 String引数のインスタンスが%n
または%s
または%d
であるかどうかを確認し、後でString.format(format, argument);
と組み合わせて使用されるStringに格納するかどうかを確認したいだけです。
誰かが私を助けることができたらそれはすばらしいでしょう!
これまで読んでいただきありがとうございます。
本当にうまくいきましたね、どうもありがとう! –