我正在尝试从标点符号中拆分一个单词:

例如,如果单词是“ Hello?”。我想将“ Hello”存储在一个变量中,将“?”存储在一个变量中在另一个变量中。

我尝试使用.split方法,但是删除了定界符(标点符号),这意味着您不会保留标点符号。

String inWord = "hello?";
String word;
String punctuation = null;
if (inWord.contains(","+"?"+"."+"!"+";")) {
    String parts[] = inWord.split("\\," + "\\?" + "\\." + "\\!" + "\\;");
    word = parts[0];
    punctuation = parts[1];
} else {
    word = inWord;
}

System.out.println(word);
System.out.println(punctuation);


我被困住了,看不到另一种方法。

提前致谢

最佳答案

您可以使用正向前瞻进行拆分,因此您实际上无需使用标点符号进行拆分,而是在其前面的位置:

inWord.split("(?=[,?.!;])");


ideone demo

10-08 15:39