java - 将一个字符串分成两部分

标签 java regex string

我正在尝试将一个单词与其标点符号分开:

例如,如果这个词是“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

关于java - 将一个字符串分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735957/

相关文章:

Java applet 错误...出了什么问题?

java - 使用 MYSQL 和 JSP 填充 Javascript 数组

java - 单击第二个 Activity 的按钮在 View 上执行 'single click' 或 'scroll to' 时出错

javascript - 带有特殊字符 (-) 的字母数字正则表达式,最多只允许 4 个数字字符

javascript - javascript 中的正则表达式,格式非常特殊

ruby - Rails 3 中截断的奇怪行为

python - 使用 re 从 .pgn (字符串行)构建数据框

java - 可以在 Gigaspaces XAP 8 中不使用 SQL 来保存数据吗?

c - C语言结构体指针

regex - 如何使用 Perl 正则表达式删除所有连字符?