Il n'y a rien d'intégré ; le filtre de Ben est la meilleure version sommaire si les performances ne sont pas un problème (par exemple, si vous validez l'entrée de l'utilisateur). En général, les performances ne sont pas un problème.
Notez également qu'il est un peu étrange d'utiliser match
alors qu'il ne s'agit pas de faire correspondre quoi que ce soit ; il s'agit simplement d'un texte passe-partout supplémentaire pour obtenir une instruction if-else. Dites simplement
if (s ne null && s.trim.length > 0) Some(s) else None
ce qui est à peu près aussi rapide et bref que tout, à moins que vous ne vouliez écrire votre propre méthode is-it-whitespace. Notez que trim
utilise un critère particulier : tout ce qui est au-dessus de \u0020 (c'est-à-dire ' ') n'est pas rogné, et tout ce qui est égal ou inférieur l'est. Ainsi, vous pourriez également écrire votre propre détecteur de chaîne coupée est vide, si la performance de cette opération était particulièrement importante :
def ContentOption(s: String): Option[String] = {
if (s ne null) {
var i = s.length-1
while (i >= 0) {
if (s.charAt(i) > ' ') return Some(s)
i -= 1
}
}
None
}