String
の2文字を使用すると、ISO 639の国または言語名を表す必要があります。文字列がJavaでISO言語の国であるかどうかを確認する方法
あなたが知っている、Locale
クラスは、それぞれ、すべてのISO言語とISOの国でString
の配列を返す二つの機能getISOLanguages
とgetISOCountries
を持っています。
特定のString
オブジェクトが有効なISO言語またはISO国であるかどうかを確認するには、その配列内で一致するString
を調べる必要があります。バイナリ検索(例:Arrays.binarySearch
またはApacheCommons ArrayUtils.contains
)を使用すると、これを行うことができます。
問題がある:、例えば、クリーンな方法を提供する任意のユーティリティ(例えばグアバ又はアパッチ・コモンズライブラリーから)を存在boolean
を返してString
を有効なISO 639言語またはISO 639国であるとして検証する関数?例えば
:
public static boolean isValidISOLanguage(String s)
public static boolean isValidISOCountry(String s)
アレイを検索する前に、文字列の長さを確認することを覚えておいてください。 – Dariusz
もちろん...ありがとうございます! –
@Dariusz:少なくともハッシュルックアップを行っている場合、私は気にしません。ハッシュするのに長い時間がかかる膨大な文字列を受け取ることが予想されない限り、それは証明されていないとかなり複雑です。 –