如何从非整数旁边的字符串中提取整数?

时间:2017-08-16 17:19:01

标签: java list java.util.scanner

我正在做一个相当简单的扑克牌,比较双手并输出一个胜利者。

我有一个字符串 - > " 2D,3D,6H,10D,KS"。对于我的解决方案,我需要不同列表中的Numbers和Suites。我尝试使用子串解决它;

// Seperate card number and suite
int num = Integer.parseInt(mainHand.substring(0, 1));
String suite = mainHand.substring(1,2);
mainHand = mainHand.substring(4);

问题是当字符串包含10时,它显然停止工作为" 10" .length()> 1.

因此我尝试了

int num = scanner.nextInt();

但我得到的只是一个InputMismatchException,我假设它是由于它旁边的非int。

我使用Scanner错了吗?是否有更好的方法将这两个分成列表?

1 个答案:

答案 0 :(得分:0)

您可以先拆分字符串:

 String[] parts = str.split(",\\s*")

然后对于每个部分,您可以使用相对于其末尾子串(因为它似乎套件只是一个字符):

 int splitIdx = part.length - 1;
 int num = Integer.parseInt(part.substring(0, splitIdx));
 String suite = mainHand.substring(splitIdx);