gpt4 book ai didi

java - 与 Jackcess 匹配的列数据子字符串

转载 作者:行者123 更新时间:2023-11-30 02:39:51 25 4
gpt4 key购买 nike

在我的 Access 数据库表中,我有一个 cmt_data 列,其中包含一个字符串。例如:

Check in the packet TM(12,9) MRSS0319 'Monitoring List Report'.

我还有一个 List<String> ,其中包含 MRSS0319TRPP3006 等项目。我想要做的是在 List<String> 和表列之间执行子字符串匹配,但我不太清楚如何作为示例Jackcess 提供的方法相当简单。我发现 here 的一个示例显示:

Column col = table.getColumn("town");
cursor.beforeFirst();
while(cursor.moveToNextRow()) {
if(cursor.currentRowMatches(columnPattern, valuePattern)) {
// handle matching row here
}
}

cursor.currentRowMatches(columnPattern, valuePattern) 方法看起来很有用。然而根据文档,该方法似乎只执行字符串相等匹配,所以现在我有点陷入了死胡同。

感谢您的帮助。

最佳答案

当然,您可以创建一个小方法来检查 cmt_data 值是否匹配:

public static void main(String[] args) {
String dbPath = "C:/Users/Public/JackcessTest.accdb";
try (Database db = DatabaseBuilder.open(new File(dbPath))) {
Table table = db.getTable("cmt_table");
Cursor cursor = table.getDefaultCursor();
cursor.beforeFirst();
while (cursor.moveToNextRow()) {
Row row = cursor.getCurrentRow();
if (stringContainsSpecialValue(row.getString("cmt_data"))) {
// handle matching row here
System.out.println(row);
}
}
} catch (Exception e) {
e.printStackTrace(System.err);
}
}

private static boolean stringContainsSpecialValue(String str) {
boolean rtn = false;
List<String> specialValues = Arrays.asList("MRSS0319", "TRPP3006");
for (String val : specialValues) {
if (str.contains(val)) {
rtn = true;
break;
}
}
return rtn;
}

您或许还可以创建自定义 ColumnMatcher对于你的光标,但这可能有点过分了。

关于java - 与 Jackcess 匹配的列数据子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42088061/

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