新浪明星日誌熱門推薦(java實現)

Thinkgamer_gyt發表於2015-06-19

現在進行推薦的第三步:

1:利用資料的格式如下:


2:程式語言採用的是Java,原始碼如下:

package top10;

import java.util.*;
import java.io.*;

public class top {

    public static void top(String []one,String []two,String []three){
        int []one1 = new int[15688];
        for(int i =0;i<15687;i++)
            {
            one1[i]=0;
            for(int j=i;j<15688;j++)
                if(one[j]==one[i])
                {
                    one1[i]++;
                }
            }
        for(int i =0;i<15688;i++)
            for(int j=i;j<15688;j++)
                if(one1[i]>one1[j])
                {
                    String temp1;
                    temp1=one[i];
                    one[i]=one[j];
                    one[j]=temp1;
                    
                    String temp2;
                    temp2=two[i];
                    two[i]=two[j];
                    two[j]=temp2;
                    
                    String temp3;
                    temp3=three[i];
                    three[i]=three[j];
                    three[j]=temp3;
                }
        System.out.println("Top前十的結果為:");
        System.out.println("姓名\t"+"\t推薦部落格地址"+"\t\t\t\t\t\t\t\t\t\t\t"+"推薦作者部落格首地址");
        for(int k=1;k<=10;k++)
        {
            String str;
                str = String.format("%s\t\t%s\t\t%s", one[k],two[k],three[k]);
            System.out.println(str);
        }
            
    }
    
    public static void list() throws IOException{
        FileReader in = new FileReader("title.txt");
        BufferedReader br = new BufferedReader(in);
        String s1 = null;
        String []one = new String[15688];
        String []two = new String[15688];
        String []three = new String[15688];
        int i = 0,k=0,m=0,j = 1;
        while((s1 = br.readLine()) != null) {
            if(j%3==2)
            {
                two[k] = s1;
                k++;
            }
            else if(j%3==0)
            {
                three[m] = s1;
                m++;
            }
            else
                {
                one[i] = s1;        
                i++;
                }
            j++;
            }
        br.close();
        in.close();
//        System.out.println(j);
        top(one,two,three);
    }
    
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        
        System.out.println("+++++++++++++++++|||||||||||||||++++++++++++++++++");
        System.out.println("**************歡迎使用新浪明星部落格推薦系統          ***************");
        System.out.println("**************    1、使用推薦功能                        ***************");
        System.out.println("**************    2、退出此係統,謝謝使用       ***************");
        System.out.println("+++++++++++++++++|||||||||||||||++++++++++++++++++");
        Scanner in = new Scanner(System.in);
        while(true)
        {
            int i = in.nextInt();
            {
                switch(i)
                {
                case 1: list();break;
                case 2:System.out.println("謝謝使用!!!");break;
                default:System.out.println("請重新輸入!!!");
                }
            }
        }
        
    }
}


3:執行的結果如圖:


相關文章