Java11 になって、地味に嬉しいのが、java.lang.String の strip() メソッドでしょう。
Java10 までは、Wicket の TextField<String> の入力値の取得も、
できるだけ Optional を使って書いても、結局、前後に入力された全角空白を取り除く処理を
書かないとなりませんでした。
final TextField<String> itemField = new TextField<>("item", new Model<>()); // ↓ TextFieldを取得取得する form submit の中の処理として、、 Optional.ofNullable(itemField.getModelObject()).ifPresent(e->{ // 前後に入力された全角空白を取り除く処理を書く。 // 前後に入力された全角空白を取り除いた結果、空文字でなければ // 入力値としての処理を行う。 });
または、Optional で、map () の中で全角空白をこのような処置をして orElse や orElseThrow をしなくては
なりませんでした。
Java11から、 追加された strip() と isBlank() を使って、Optional の ifPresent で
処理するようにしたければ、、
Optional.ofNullable(itemField.getModelObject()) .map(e->e.strip()) .filter(e->!e.isBlank()) .ifPresent(e->{ // 入力された値 e を処理する });
strip() の他に追加された
stripLeading() | 前方で全角空白と空白(タブ文字も)を削除 |
stripTrailing() | 後方で全角空白と空白(タブ文字も)を削除 |
左(Left) 右(Right) の名称にして欲しかった。。。