Wikipedia:編集回数の多いウィキペディアンの一覧/一覧データを生成する方法
リピ率94%の脅威の石鹸
アソコの匂い完全消去☆

[Wikipedia|▼Menu]

一覧データを生成する方法の一例を説明します。 このページで生成方法を説明する一覧データのページは、次のとおりです。

ja:Wikipedia:編集回数の多いウィキペディアンの一覧

en:Wikipedia:List of Wikipedians by number of recent edits

en:Wikipedia:List of Wikipedians by number of edits

zh:Wikipedia:最多?献的用?

このページで説明する方法による一覧の生成には、Javaプログラムコンパイル/実行する方法について、若干の知識が必要となります(高度な知識は必要ありません)。 一覧の生成では、コンピュータを使い、そのコンピュータ上でJava開発/実行環境とJavaプログラムとを使います。 この方法で一覧データを生成する場合、ある程度のメモリを要します。
目次

1 前提

2 手順

2.1 ja:Wikipedia:編集回数の多いウィキペディアンの一覧 の場合

2.2 英語版の場合

2.2.1 en:Wikipedia:List of Wikipedians by number of recent edits の場合

2.2.2 en:Wikipedia:List of Wikipedians by number of edits の場合


2.3 zh:Wikipedia:最多?献的用? の場合


//


前提

Javaが動作するシステムのコンピュータが一台必要となります。例えば、次のようなコンピュータシステムです。

UNIXもしくはUNIXに似たシステムLinuxMac OS X など)

Windows


JavaJava SE 5.0 以上)の開発/実行環境が予めコンピュータに導入されている必要があります。

次のJavaプログラムコンパイルしてコンピュータ内に配置しておきます。

AnonymousUsers.javaimport java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern; class AnonymousUsers { private Map<String, String> users = new HashMap<String, String>(); private static final String INPUT_FILE_NAME = "anonymous.txt"; public void initialize() throws FileNotFoundException, IOException { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(INPUT_FILE_NAME)); final Pattern pattern = Pattern.compile("^\\s*\\d*\\.?\\s*User:"); while (true) { final String line = reader.readLine(); if (line == null || line.length() == 0) { break; } final Matcher matcher = pattern.matcher(line); final String user = matcher.replaceFirst(""); users.put(user, user); } } finally { if (reader != null) { reader.close(); } } } public boolean contains(String user) { return users.containsKey(user); } public String toString() { return users.toString(); } }

Namespaces.javaimport java.util.HashMap;import java.util.Map; class Namespaces { public static final int MAIN_NAMESPACE = 0; private final Map<String, Integer> map = new HashMap<String, Integer>(); public void add(String key, int ns) { map.put(key, ns); } public int ns(String text) { final String NAMESPACE_SEPARATOR = ":"; if (!text.contains(NAMESPACE_SEPARATOR)) { return MAIN_NAMESPACE; } Integer ns = map.get(text.split(NAMESPACE_SEPARATOR)[0]); if (ns == null) { return MAIN_NAMESPACE; } return ns; } }

UnflaggedBots.javaimport java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern; public class UnflaggedBots { private Map<String, String> users = new HashMap<String, String>(); private static final String INPUT_FILE_NAME = "unflagged-bots.txt"; public void initialize() throws FileNotFoundException, IOException { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(INPUT_FILE_NAME)); final Pattern pattern = Pattern.compile("^\\s*\\d*\\.?\\s*"); while (true) { final String line = reader.readLine(); if (line == null || line.length() == 0) { break; } final Matcher matcher = pattern.matcher(line); final String user = matcher.replaceFirst(""); users.put(user, user); } } finally { if (reader != null) { reader.close(); } } } public boolean contains(String user) { return users.containsKey(user); } public String toString() { return users.toString(); } }

User.javaclass User { private int id = 0; private String text = null; private int edits = 0; private int editsInRecentDays = 0; private int editsMain = 0; private int editsMainInRecentDays = 0; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getText() { return text; } public void setText(String text) { this.text = text; } public int getEdits() { return edits; } public int getEditsInRecentDays() { return editsInRecentDays; } public int getEditsMain() { return editsMain; } public int getEditsMainInRecentDays() { return editsMainInRecentDays; } public void incrementEdits(){ edits++; } public void incrementEditsInRecentDays(){ editsInRecentDays++; } public void incrementEditsMain(){ editsMain++; } public void incrementEditsMainInRecentDays(){ editsMainInRecentDays++; } public User(){ } public User(int id, String text){ this.id = id; this.text = text; } public boolean isIpAddress(){ return id == 0; } public String toString() { return "id: " + id + ", text: " + text + ", edits: " + edits + ", editsRecentDays: " + editsInRecentDays; } }


★制服でHなバイト★
1日5万円★日払い★

[次ページ]
[オプション/リンク一覧]
[記事の検索]
[おまかせ表示]
[トップページ]
[ニュースをチェック!]
[列車運行情報]
Size:42 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:Mamenoki