从卡拆分西装

时间:2014-06-08 12:15:18

标签: java regex

所以基本上我必须将卡从套装中拆分,我的代码几乎可以正常工作,但是最后一套套装总是不会从卡片上分开。到目前为止我的代码:

String userInput = input.nextLine();
String[] allCards = userInput.split("[SHDC](\\s+|$)");

让我们说输入是:2H 3D 5C KS KH

输出为:2 3 5 K KH

我被困了,请帮忙。

2 个答案:

答案 0 :(得分:2)

这是因为只有当套装名称后跟一个或多个空格时,您的代码才会分裂。更改正则表达式以使行尾标记符合套装的字符,如下所示:

[SHDC](\\s+|$)

以下是输入字符串的工作原理:

String[] tt = "2H 3D 5C KS KH".split("[SHDC](\\s+|$)");
for (String s : tt) {
    System.out.println(s);
}

Demo on ideone.

答案 1 :(得分:0)

您的输入最后不包含空格,因此请尝试将\\s+替换为可能有帮助的\\s*

"[SHDC]\\s*"