100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用java实现页面搜索功能_关于如何利用矩阵实现搜索功能

用java实现页面搜索功能_关于如何利用矩阵实现搜索功能

时间:2019-03-02 12:32:56

相关推荐

用java实现页面搜索功能_关于如何利用矩阵实现搜索功能

该楼层疑似违规已被系统折叠隐藏此楼查看此楼

package com;

public class Test {

public static void main(String[] args) {

String[] books = { "应用线性代数", "初等线性代数", "初等线性代数及其应用", "线性代数及其应用", "线性代数及应用", "矩阵代数及应用", "矩阵理论" };

String[] keywords = { "初等", "代数", "矩阵", "理论", "线性", "应用" };

int len1 = books.length;

int len2 = keywords.length;

Integer[][] data = new Integer[len1][len2];

// 将书名与关键词做成数据库矩阵

for (int i = 0; i < len2; i++) {

String keyword = keywords[i];

for (int j = 0; j < len1; j++) {

String book = books[j];

if (book.indexOf(keyword) >= 0) {

data[j][i] = 1;

} else {

data[j][i] = 0;

}

}

}

// 输入关键词,用,号隔开

String inputKeyword = "矩阵,应用";

System.out.println("输入关键词:" + inputKeyword);

String[] inputKeywords = inputKeyword.split(",");

Integer[] vector = new Integer[len2];

// 将关键词转换成搜索向量

for (int i = 0; i < len2; i++) {

boolean isHave = false;

for (String str : inputKeywords) {

if (str.equals(keywords[i])) {

isHave = true;

}

}

vector[i] = isHave ? 1 : 0;

}

// 将搜索向量与数据库相匹配

Integer[] result = new Integer[len1];

int dataRow = data.length;

for (int i = 0; i < dataRow; i++) {

result[i] = 0;

for (int j = 0; j < len2; j++) {

result[i] += data[i][j] * vector[j];

}

}

System.out.println("搜索结果:");

System.out.println("------------");

for (int i = 0; i < result.length; i++) {

if (result[i] == 1) {

System.out.println(books[i]);

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。