public static Map<String,String> getCNPunctuation(Map<String,String> summary){ String title = summary.get("title"); String metaContent = summary.get("meta_content"); // 定义英文标点和中文标点的对应关系 Map<String, String> punctuations = new HashMap<>(); punctuations.put(",", ","); punctuations.put(".", "。"); punctuations.put("!", "!"); punctuations.put("?", "?"); punctuations.put(":", ":"); punctuations.put(";", ";"); punctuations.put("(", "("); punctuations.put(")", ")"); // 遍历 Map,将字符串中的英文标点替换成中文标点 for (Map.Entry<String, String> entry : punctuations.entrySet()) { String enPunc = entry.getKey(); String cnPunc = entry.getValue(); title = title.replace(enPunc, cnPunc); metaContent = metaContent.replace(enPunc,cnPunc); } summary.put("title",title); summary.put("meta_content",metaContent); return summary; }这段代码传入的summary,我想加如一一个判断,如果句子末尾是省略号则省略号的...不替换成。。。 提示只是句子的省略号不替换,别的标点按照代码逻辑转换,该如何实现
时间: 2023-07-19 19:25:50 浏览: 72
List<Map<String, List<String>>> data保存到SharedPreference和读取
4星 · 用户满意度95%
你可以在遍历 Map 替换标点的过程中,加入对句尾是否为 "..." 的判断,如果是,则只替换前面的英文标点,不替换最后的省略号。可以使用 String 的 endsWith() 方法来判断句尾是否为 "..."。修改后的代码如下:
```
public static Map<String, String> getCNPunctuation(Map<String, String> summary) {
String title = summary.get("title");
String metaContent = summary.get("meta_content");
// 定义英文标点和中文标点的对应关系
Map<String, String> punctuations = new HashMap<>();
punctuations.put(",", ",");
punctuations.put(".", "。");
punctuations.put("!", "!");
punctuations.put("?", "?");
punctuations.put(":", ":");
punctuations.put(";", ";");
punctuations.put("(", "(");
punctuations.put(")", ")");
// 遍历 Map,将字符串中的英文标点替换成中文标点
for (Map.Entry<String, String> entry : punctuations.entrySet()) {
String enPunc = entry.getKey();
String cnPunc = entry.getValue();
// 判断句尾是否为 "..."
if (title.endsWith("...")) {
// 如果句尾为 "...",则只替换前面的英文标点
title = title.substring(0, title.length() - 3).replace(enPunc, cnPunc) + "...";
} else {
title = title.replace(enPunc, cnPunc);
}
if (metaContent.endsWith("...")) {
metaContent = metaContent.substring(0, metaContent.length() - 3).replace(enPunc, cnPunc) + "...";
} else {
metaContent = metaContent.replace(enPunc, cnPunc);
}
}
summary.put("title", title);
summary.put("meta_content", metaContent);
return summary;
}
```
阅读全文