0
単語をつぶやきと比較して、それらがテキストに何回出現するかを数える必要があります。 ArrayListとArrayListを比較するために2つのサイクルを使用しましたが、ArrayListの最初の単語は正しく表示されず、カウントしたくありません。ツイートを取得し、ArrayListのJava:配列の最初の項目が正しく表示されない
public ArrayList<String> showTimeLine() throws TwitterException {
List<Status> statuses = twitter.getHomeTimeline(new Paging (1,200));
ArrayList<String> allTweets=new ArrayList<String>();
for (Status status : statuses) {
allTweets.add(status.getText().replaceAll("https[^\\s]+","").toLowerCase());
}
return allTweets;
}
に保存する言葉でtxtを
読むとArrayListの
public ArrayList <String> fread(String dir) throws FileNotFoundException, IOException {
Scanner s = new Scanner(new File(dir));
ArrayList<String> list = new ArrayList<String>();
while (s.hasNext()){
list.add(s.next().toLowerCase());
}
s.close();
return list;
}
に保存します。これは、二回
私のコードがあるカウントチャンピオンワードになっている Output Image
2つの配列を比較:
public ArrayList<String> result(ArrayList<String>tweets, ArrayList<String> palavras){
for (int i = 0; i <palavras.size() ; i++) {
int count = 0;
for (int j = 0; j <tweets.size() ; j++) {
if (tweets.get(j).contains(palavras.get(i))){
count++;
}
}
numero.add(count);
result.add(palavras.get(i));
}
return result;
}
そして印刷
for (int i = 0; i <result.size() ; i++) {
System.out.printf("%40s",result.get(i)+" "+numero.get(i)+"\n");
}
静的ArrayListに:
static ArrayList<Integer> numero = new ArrayList<Integer>();
static ArrayList<String> result = new ArrayList<String>();
ありがとう! :)
あなたのprintfステートメントは非常に制限されており、完全には使用していません。 xがintの場合、少なくとも2つの '%xd'ステートメントを使用する必要があります。最初の文字列内では、最後の'%n 'は引用符で囲まれています。つまり、最初のprintfパラメーター内にあります。 2番目と3番目のパラメータは2つの 'get(i)'文でなければなりません。 –
エラーを示す小さなサンプルを提供してください。 –
私はこの問題を解決しました。私は理由はわかりませんが、Windowsのメモ帳でtxtファイルを作成した場合、私はこの "バグ"がありますが、メモ帳でtxtファイルを作成すると、問題なく実行できます。 @HovercraftFullOfEels –