[Java]:したらばのsubject.txtからレス番号を取る
import java.util.*;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
String urls= "http://jbbs.livedoor.jp/otaku/14429/subject.txt";
List<String> lb = new Walker().getURL(urls, "EUC-JP" );
Map<Integer,JBBSModel> mps= new HashMap<Integer,JBBSModel>();
for (String bbsthread:lb){
JBBSModel jm = new JBBSModel(bbsthread);
mps.put(jm.getId(), jm);
}
for(Map.Entry<Integer,JBBSModel> mpet:mps.entrySet()){
System.out.println(mpet.getValue().getId()+":"+mpet.getValue().getResnum()+":"+mpet.getValue().getTitle());
}
}
}
Walkerは自作クラス(前のエントリ参考)
JUGEMテーマ:インターネット
プロパティを入れるためのクラス
class JBBSModel {
int resnum;
int id;
String title;
public String getTitle(){return title;}
public int getId(){return this.id;}
public int getResnum(){return resnum;}
public JBBSModel(String entryOfSubjectTxt){
this.title = trimResnum(entryOfSubjectTxt.split(",")[1]);
this.id=Integer.parseInt(entryOfSubjectTxt.substring(0, 10));
this.resnum=Integer.parseInt(getResNumAsString(entryOfSubjectTxt));
}
private String trimResnum(String str){
int resnum_start=str.lastIndexOf('(');
return str.substring(0,resnum_start);
}
public String getResNumAsString(String str){
int resnum_start=str.lastIndexOf('(');
int resnum_end=str.lastIndexOf(')');
return str.substring(resnum_start+1,resnum_end);
}
}
結果はこんなかんじ
1303647855:403:やらない夫は救世主と呼ばれる様です 3
1305098986:637:静止軌道上からの入電
1300527685:456:【シャドウラン2版】やらない夫は経済帝国の影を生きるようです 9
1297943951:193:やらない夫とみゆきが白い季節を過ごすようです その3
1302695264:52:【R-18】吸血鬼やらない夫の復讐1
1305291015:1000:やるやらがWizardryに挑戦するようです4
TODO
・スレッドIDとレス数データの保存
・時系列前後のレス数比較をできるようにする
コメント
コメントを投稿
「コメントを投稿できるユーザー」の範囲は変更される可能性があります。