入力された文字列をコンマでチェックしたいのですが、これは非常に簡単です (これを使用しました:文字列に単一の文字が表示されているかどうかを確認するにはどうすればよいですか? )。今、キャラクターが複数回存在するかどうかを確認したいと思います。(この場合はコンマ (/u002C)) このコードを作成しました:
public static void addTextLimiterDouble(final TextField tf, final int maxLength, final Button submitButton) {
tf.textProperty().addListener(new ChangeListener<String>() {
@Override
public void changed(final ObservableValue<? extends String> ov, final String oldValue, final String newValue) {
if (oldValue.contains("\u002C") && newValue.endsWith("\u002C")) {
tf.setText(oldValue);
}
}
});
ループから抜け出せないように見えるため、これにより StackOverflow エラーが発生します。なぜできないのか誰か説明できますか?
注: 複数の文字をチェックする方法が他にもあることは知っていますが、なぜこれでエラーが発生するのか不思議です。
どんな助けでも大歓迎です!