我正在做一个相当简单的扑克牌,比较双手并输出一个胜利者。
我有一个字符串 - > " 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错了吗?是否有更好的方法将这两个分成列表?
答案 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);