2016-07-30 8 views
-1

天気予報の郵便番号検索の検証については、今話題になっています。私はまた、都市と州の検索を検証したい。たとえば、人が郵便番号を検索するときは、郵便番号の5桁のみを入力します。都市のために、私は彼らが都市を捜すときに何の数字も望んでいません。 誰かが私を助けることができますか?この部分については天気アプリの郵便番号と都道府県の確認方法

public class WeatherRequestTask extends AsyncTask<String, Integer, ResponseDto> { 
    private static final String WU_HOST = "http://api.wunderground.com"; 
    private static final String WU_API_KEY = "/api/36053e2befabcfe2"; 
    private static final String WU_DATA_FEATURE_CONDITION = "/conditions"; 
    private static final String WU_QUERY_TAG = "/q"; 
    private static final String WU_API_EXT = ".json"; 

    private String mZipCode; 
    private String mCity; 
    private String mState; 

    public WeatherRequestTask(String zipCode) { 
     if (TextUtils.isEmpty(zipCode)) { 
      throw new IllegalArgumentException("Zip Code is required"); 
     } 
     mZipCode = zipCode; 

    } 

    public WeatherRequestTask(String city, String state) { 
     mCity = city; 
     mState = state; 
     // TODO: validate city and state 
    } 

    @Override 
    protected ResponseDto doInBackground(String... strings) { 
     ResponseDto myResponseDto = new ResponseDto(); 
     HttpURLConnection urlConnection = null; 
     try { 

      URL url; 
      if (TextUtils.isEmpty(mZipCode)) { 
       // use city and state query 
       url = new URL(WU_HOST + WU_API_KEY + WU_DATA_FEATURE_CONDITION + WU_QUERY_TAG + "/" + mState + "/" + 
         mCity + WU_API_EXT); 
      } else { 
       // use zipCode query 
       url = new URL(WU_HOST + WU_API_KEY + WU_DATA_FEATURE_CONDITION + WU_QUERY_TAG + "/" + mZipCode + 
         WU_API_EXT); 
      } 

      urlConnection = (HttpURLConnection)url.openConnection(); 
      BufferedReader br = new BufferedReader((new InputStreamReader(urlConnection.getInputStream()))); 
      StringBuilder sb = new StringBuilder(); 

      String temp; 
      while ((temp = br.readLine()) != null) { 
       sb.append(temp); 
      } 

      JSONObject contentJson = new JSONObject(sb.toString()); 
      Response response = Response.deserialize(contentJson.getJSONObject("response")); 
      CurrentObservation currentObservation = CurrentObservation.deserialize(contentJson.getJSONObject 
        ("current_observation")); 
      myResponseDto.setCurrentObservation(currentObservation); 
      myResponseDto.setResponse(response); 
     } catch (Exception e) { 
      return null; 
     } finally { 
      if (urlConnection != null) { 
       urlConnection.disconnect(); 
      } 
     } 
     return myResponseDto; 
    } 
} 
+1

編集テキストや検索ウィジェットで検索しているものは何ですか? –

+0

これは編集テキストになります –

+0

あなたのコードの一部を投稿して、簡単に助けてください –

答えて

0

例えば、人々はあなたがチェックしてみてください郵便番号

ため を検索するとき、私は唯一の郵便番号5桁にしたいです郵便番号文字列の長さ:

if(zipCode.length==5){ 

    //zipcode is 5 characters 
    //proceed with the search 

}else{ 

    //zipcode is less or more than 5 
    //warn user or whatever 
} 

そして:

都市では、都市を検索するときに数字を入力する必要はありません。

if(mState.matches(".*\\d+.*"){ 

    //contains numbers 
    //so don't carry forward or warn user 

    }else{ 

    //Possibly what you want 

    } 
+1

'\\ d'とマッチするだけで、文字列内の任意の数字を見つけることができます –

0

この質問は、複数の触手を持っています。 「検証する」とはどういう意味ですか?その地図の郵便番号を州/都市のペアに購入できるデータベースがあります。逆の問題はもう少し複雑です。 USPSは、その情報を提供する巨大な本を出版しています。

数字のない都市では、数字を含む都市名は聞いたことがありません.Twentynine Palms、California以外ではありませんが、それは言葉です。

関連する問題