TDD、Test Driven DevelopmentプロジェクトのSQLファイルのマクロ処理があります。split()メソッド初期の文字列をチョップするための複雑さ
- >は、私が使用しているマクロマーカー
の\ P {スペース} + POSIX標準正規表現分割されます。
sqlLine.split("\\p{space}+");
この場合、マクロは空白の後に開始する必要があります。私の分裂だけが働く。したがって、私はNoSpaceInMacroStartup
ケースを処理するために追加しました。私がそれをしている間に、スプリットがSystem.out.println()
に関して異なった振る舞いをしていることと、直接指数付けをすることが分かった。
macroToken = macroToken.split("-->")[1]; //gives the first token after markup
//But While I examine
//gives the first token after markup
System.out.println("[0]->"+macroToken.split("-->")[0])
//And next index throws exception
System.out.println("[1]->"+macroToken.split("-->")[1])
スプリットが異なる動作をする理由を知りたいと思います。
私はデバッグモードで次の行を検査しますが、
macroToken = macroToken.split( " - >") [1];
それは
[0] = ""
[1] = "このため分散の
" 内で、私が使用している、 -
macroToken = macroToken.replaceFirst("-->","");
split()の直接インデックスとその実行時の動作について、誰かの説明をしてください。
" の中で、私は私が実現していた質問自体をフレーム間実行時の分散がないということです。それは、同じ変数への代入のために起こっていました。次回はマクロマーカーが見つかりませんでした。マクロマーカーはマークアップ ' - >'としてロジックとして使用されていました。したがって、インデックス[1]は失敗します。 –