gpt4 book ai didi

Java字符串比较

转载 作者:行者123 更新时间:2023-12-02 08:55:27 25 4
gpt4 key购买 nike

我正在比较两个大文本文件中的子字符串。非常简单,将标记化为两个标记容器,与 2 个 for 循环进行比较。 性能是灾难性的!有人对如何提高性能有建议或想法吗?

for (int s = 0; s < txtA.TokenContainer.size(); s++) {
String strTxtA = txtA.getSubStr(s);
strLengthA = txtA.getNumToken(s);

if (strLengthA >= dp.getMinStrLength()) {
int tokenFileB = 1;

for (int t = 0; t < txtB.TokenContainer.size(); t++) {
String strTxtB = txtB.getSubStr(t);
strLengthB = txtB.getNumToken(t);

if (strTxtA.equalsIgnoreCase(strTxtB)) {
try {
subStrTemp = new SubStrTemp(
txtA.ID, txtB.ID, tokenFileA, tokenFileB,
(tokenFileA + strLengthA - 1),
(tokenFileB + strLengthB - 1));

if (subStrContainer.contains(subStrTemp) == false) {
subStrContainer.addElement(subStrTemp);
}
} catch (Exception ex) {
logger.error("error");
}
}
tokenFileB += strLengthB;
}
tokenFileA += strLengthA;
}
}

通常,我的代码使用 Java Tokonizer 将两个大字符串读取到容器 A 和 B 中。然后尝试比较两个字符串中存在的 Substrgs 的 substrings.Possision 以存储到 Vector 中。但是性能很糟糕,也不知道如何用HashMap解决。

最佳答案

您的主要问题是您要为 txtA 中的每个标记遍历所有 txtB。

您应该存储 txtA 中 token 的信息(例如在 HashMap 中),然后在第二个循环(但不是嵌套循环)中将字符串与映射中的现有字符串进行比较。

<小时/>

同一主题:

关于Java字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3647651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com