Ham*_*mad 6 java regex prepared-statement ucanaccess
我有这张桌子
我正在使用以下代码从我的表中检索数据,该数据返回其库尔德语单词包含的所有英语单词بةرز
targetText="????";
try (PreparedStatement ps = conn.prepareStatement(
"SELECT English,Kurdish FROM Info " +
"WHERE Kurdish = ? " +
"OR REGEXP_MATCHES(Kurdish, ?) " +
"OR REGEXP_MATCHES(Kurdish, ?) " +
"OR REGEXP_MATCHES(Kurdish, ?) ")) {
ps.setString(1, targetText);
ps.setString(2, "^[. ]*" + targetText+ "[ ]*[:?,]+[ .]*$");
ps.setString(3, "^[. ]*[:?,]+[ ]*" + targetText+ "[. ]*$");
ps.setString(4, "^[. ]*[:?,]+[ ]*" + targetText+ "[ ]*[:?,]+[ .]*$");
try (ResultSet rSet = ps.executeQuery()) {
while (rSet.next()) {
System.out.println(rSet.getString("English"));
System.out.println(rSet.getString("Kurdish"));
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以它工作正常,它打印我想要的所有英语单词.
我的问题是,当我得到相应的库尔德语单词时,它不会打印完整的单元格.它只是打印بةرز,
例如,前面代码的输出应该是:
aesthete
???? ? ??????????
aether
???? ???? ? ???? ? ?????? ? ???????
affair
????
Run Code Online (Sandbox Code Playgroud)
但它打印
aesthete
????
aether
????
affair
????
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能获得我想要的输出?
请注意,我UCanAccess用于我的数据库连接,
所有人的坦克,我只需在 regx 中进行一些更改就解决了这个问题
\n\ntargetText="\xd8\xa8\xd8\xa9\xd8\xb1\xd8\xb2";\ntry (PreparedStatement ps = conn.prepareStatement(\n "SELECT English,Kurdish FROM Info " +\n "WHERE Kurdish = ? " +\n "OR REGEXP_MATCHES(Kurdish, ?) " +\n "OR REGEXP_MATCHES(Kurdish, ?) " +\n "OR REGEXP_MATCHES(Kurdish, ?) ")) {\n ps.setString(1, targetText);\n ps.setString(2, "^" + targetText+ "[ ]*(\xd8\x8c)[.]*");\n ps.setString(3, "[.]*(\xd8\x8c)[ ]*" + targetText+ "$");\n ps.setString(4, "[.]*(\xd8\x8c)[ ]*" + targetText+ "[ ]*(\xd8\x8c)[.]*");\n try (ResultSet rSet = ps.executeQuery()) {\n while (rSet.next()) {\n System.out.println(rSet.getString("English"));\n System.out.println(rSet.getString("Kurdish"));\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |