String.strip() vs trim()
strip()、stripLeading()、stripTrailing()でUnicode対応のトリミングを行う。
コード比較
✕ Java 8
// trim() only removes ASCII whitespace // (chars <= U+0020) String clean = str.trim();
✓ Java 11+
// strip() removes all Unicode whitespace String clean = str.strip(); String left = str.stripLeading(); String right = str.stripTrailing();
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
Unicode対応
あらゆるスクリプトのすべての空白文字を処理できます。
方向指定
stripLeading()とstripTrailing()で片側のみのトリミングが可能です。
バグを減らせる
多言語テキストで空白が残ってしまうという意図しないバグがなくなります。
旧来のアプローチ
trim()
モダンなアプローチ
strip()
JDKバージョン
11
難易度
初級
JDKサポート
String.strip() vs trim()
利用可能
JDK 11(2018年9月)以降、広く利用可能
仕組み
trim()はU+0020以下の文字(ASCII制御文字とスペース)しか除去しません。strip()はCharacter.isWhitespace()を使用するため、ノーブレークスペース、全角スペースなどUnicodeのあらゆる空白に対応します。
関連ドキュメント