📄 weather.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 + -