1

プログラムで GPS (緯度/経度) から位置情報を受信して​​います。ただし、特殊文字や不要な文字を含む住所を受信することがあります。

特殊文字や不要な文字を含むアドレスをサーバーに送信すると、サーバーによって拒否されます。

例 1: , デリー, ä¸å?½

例 2: सॠक

この問題を防ぐにはどうすればよいですか?

4

1 に答える 1

0

正規表現を使用してこの問題を回避し、すべての文字が US-ASCII コード ポイント タイプであると一致させることができます。

String testText [] = new String[] { "delhi", "中�", 
    "à¤", "à¥à¤• ", "tessst½", "some valid test text1213"
};

for (String str : testText) {
    if (str.matches("\\A\\p{ASCII}*\\z")) {
        //do something
        Log.d("TAG", str + " - String is valid");
    }
}

Java 8 を使用している場合は、次の方法で実行できます。

textInfoFromLocation.chars().allMatch(c -> c < 128)

各文字を確認したいだけの場合は、次のようにします。

for (Character c : str.toCharArray()) {
    if (c > 127) //character is invalid
        Log.d("TAG","Character " + c + " is invalid");
}

詳細については、この回答を参照してください。

于 2016-10-13T05:59:56.270 に答える