2017-08-16 30 views
0

私は2つのハンドを比較して優勝者を出力するかなりシンプルなポーカーカーターをやっています。非整数の隣にある文字列から整数を抽出する方法は?

私は文字列 - > "2D、3D、6H、10D、KS"を持っています。私のソリューションでは、数字とスイートが別のリストに必要です。私は部分文字列を使ってそれに取り組んだ。

// 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あり、私はそれに非整数次へその原因を想定しています。

私はスキャナを間違って使用していますか?そして、これらの2つをリストに分割するより良い方法はありますか?

+1

だからここで " 'K'は(最後の要素から)行くだろうか? –

+0

スイートは常に1文字です。だから最後から始める。 –

答えて

0

あなたが最初の文字列を分割することができます:

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

その後、(スイートはちょうど1文字であると思われるよう)あなたはその端部分文字列に対して使用することができ、各部分のために:

int splitIdx = part.length - 1; 
int num = Integer.parseInt(part.substring(0, splitIdx)); 
String suite = mainHand.substring(splitIdx); 
関連する問題