是否有在 java 字符串中插入标点符号的自定义方法?
假设我有这个小程序:
class Punctuation Marks {
public static void main (String[]args) {
String Greetings="Hello how are you";
System.out.println("Greetings");
}
}
预期输出:你好,你好吗。
是否有在 java 字符串中插入标点符号的自定义方法?
假设我有这个小程序:
class Punctuation Marks {
public static void main (String[]args) {
String Greetings="Hello how are you";
System.out.println("Greetings");
}
}
预期输出:你好,你好吗。
这个怎么样:
String greetings = "Hello" + "," + " how are you";
或这个:
String greetings = "Hello how are you";
greetings = greetings.substring(0, 5) + "," + greetings.substring(5);
或这个:
String greetings = "Hello how are you";
greetings = new StringBuilder(greetings).insert(5, ",").toString();
如果您知道它应该放在哪里,插入标点符号是微不足道的。但是如果你事先不知道确切的位置,那是不可能的!
在给定位置插入标点符号很容易,只需使用以StringBuilder.insert(int index, char toInsert);
编程方式确定标点符号所属的位置以及使用哪种类型,几乎是不可能的。
答案的要点是自动标点符号几乎是不可能的。
为什么?
基本上是因为有很多单词序列可以用不同的方式标点来表示不同的东西。例如。
the cow jumped over the hill I saw another cow
可以标点为
The cow jumped. Over the hill I saw another cow.
或者
The cow jumped over the hill. I saw another cow.
这显然意味着不同的东西。(你能告诉我哪个是正确的吗?为什么?如果田里有痣,你仍然正确吗?)
基本上,决定哪些可能的替代方案是“正确的”,需要深入理解标点符号的含义……在它们出现的上下文中。这很可能超出了自然语言处理的最新水平,当然也不是普通应用程序应该尝试的。