gpt4 book ai didi

java - 忽略句点但在单词末尾打印句点

转载 作者:行者123 更新时间:2023-11-30 07:29:24 25 4
gpt4 key购买 nike

我的代码正确翻译了常规单词(“nearby”到“broadside”)但是,它通过将带点的单词翻译为“附近。”而失败(“附近。”但应翻译为“宽边。)我不确定代码为什么这样做,但一旦它“检测到”句点,它无法翻译我的翻译表。这是我的代码:

 String token = scan.nextLine();
String[] output = token.split("\\s+");
for (int i = 0; i < output.length; i++)
{
if (hashmap.containsKey(output[i]))
{
output[i] = hashmap.get(output[i]);
}
System.out.print(output[i]);
if (i != output.length - 1)
{
System.out.print(" ");
}

我尝试了几种方法(replaceAll()、split())但没有成功。

最佳答案

添加此行以删除 for 循环内的句点(或您希望忽略的任何其他字符)。

      for (int i = 0; i < output.length; i++) {
output[i] = output[i].replaceAll("\\.", ""); //Add this line (or use a new variable)
if (hashmap.containsKey( output[i]) ) {
output[i] = hashmap.get(output[i]);
}
System.out.print(output[i]);
if (i != output.length - 1) {
System.out.print(" ");
}
}

更新的解决方案,保留翻译后的句点:(使用临时字符串而不是替换标记的值)

    for (int i = 0; i < output.length; i++) {
String tempStr = output[i].replaceAll("\\.", "");
if (hashmap.containsKey( tempStr ) ) {
output[i] = hashmap.get(tempStr);
}
System.out.print(output[i]);
if (i != output.length - 1) {
System.out.print(" ");
}
}

关于java - 忽略句点但在单词末尾打印句点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368183/

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