[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とレス数データの保存
・時系列前後のレス数比較をできるようにする

コメント

このブログの人気の投稿

4.3.0 Temporary Lookup Failureでドツボってた話

tomcat起動時の環境変数でJRE_HOMEを指定するときに

何が得られて何処へ向かうかだけを問うべき