我有两个字符串数组,我想将第一个数组的每个字符串与第二个字符串进行匹配,并显示平均得分。
在Kotlin中天真的实现是:
int id = SQLUser.getIntFromDatabase("SELECT * FROM Players WHERE UUID = " + uuid.toString() + "", "ID");
if(id==-1) channel.sendMessage("ID is not valid please login to the WidowMC").queue();
else
{
Message messa = new MessageBuilder().append(Utils.getName(uuid) + " Skull").build();
channel.sendFile(Utils.getSkullFile(Utils.getName(uuid)), messa).queue();
channel.sendMessage("ID = " + id);
}
public static void excuteQuery(String query)
{
Connection conn = Core.getConnection();
try
{
Statement statement = conn.createStatement();
statement.executeQuery(query);
} catch (SQLException e)
{
e.printStackTrace();
}
}
它打印:
fun main(args: Array<String>) {
val jw = JaroWinklerDistance()
val a = arrayOf("FRITZ", "FRUITS")
val b = arrayOf("FRITZ", "MARTIN", "FOOBAR")
var score = 0.0
a.forEach { x ->
var current = 0.0
b.forEach { y ->
current = max(current, jw.apply(x, y))
}
score += current
}
score /= a.size
println("Average score $score")
}
但这不是我所需要的。两个数组中的单词Average score 0.9288888888888889
已经完全匹配。因此,应将其余的FRITZ
与FRUITS
和MARTIN
进行匹配。因此平均得分应计算为:
FOOBAR
此问题是否类似于任何现有问题?我只是在寻找算法,而不是代码。
我没有运气就尝试了不同的方法。谁能帮忙吗?