⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weather.java

📁 天气预报 可以查询各个省市的天气情况
💻 JAVA
字号:
/*
 * Weather.java
 *
 * Created on 2007年2月27日, 下午7:24
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.luckme;

import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 *
 * @author hanfeng
 */
public class Weather {
    
    
    private static final String net="http://weather.tq121.com.cn/detail.php?city=";
    private static final String temModel="([-][\\d][\\d]|[-][\\d]|[\\d][\\d]|[\\d])℃ / ([-][\\d][\\d]|[-][\\d]|[\\d][\\d]|[\\d])℃";
    private static final String imageModel="a([0-9][0-9]|[0-9]).gif";
    private static final String date="([1][0-2]|[1-9])月([0-3][0-9])日";
    private String temperature;
    private String imagePath;
    private String city="%B9%FE%B6%FB%B1%F5";
    private URL url;
    private InputStream inputStream;
    private Scanner in; 
    private String[] strArray=new String[16];
    private String resources;
    private int i=0;
    
    
    /** Creates a new instance of Weather */
    public Weather() {
        connect();
        search();
    }
    public void connect(){
        try {
            url=new URL(net+city);
            inputStream=url.openStream();
            in=new Scanner(inputStream);
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        } catch (IOException e){
            e.printStackTrace();
        }
    }
    public void reconnect(String city){
        try {
            i=0;
            setCity(city);
            connect();
            search();
        } catch (UnsupportedEncodingException ex) {
            ex.printStackTrace();
        }
    }
    public void search(){
        while(in.hasNextLine()){
            String line=in.nextLine();
            searchModel(line,date);
            searchModel(line,imageModel);
            searchModel(line,temModel);
            
        }
    }
    public void searchModel(String line,String model){
        
        Pattern p=Pattern.compile(model);
        Matcher m = p.matcher(line);
        boolean b = m.find();
        if(b){
            //System.out.println(m.group());
            strArray[i]=m.group();
            i++;
        }
    }
   public void testStrArray(){
        for(int i=0;i<strArray.length;i++){
            System.out.println(getResources()[i]);
        }
    }
    public void setCity(String city) throws UnsupportedEncodingException{
        city=URLEncoder.encode(city, "gb2312");
        this.city = city;
    }
    public String[] getResources(){
        return strArray;
    }
    public static void main(String[] args){
        Weather weather=new Weather();
        //weather.reconnect("北京");
        weather.search();
        weather.testStrArray();
       
    }
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -