入力からcoollectionにすべての数値を追加してソートしたいと思います。
私はそのような入力ファイルを持っています:
12i -+3456i
78,i910
11
i-12i
13.14r
15.r16r
i17.18
-+19.20
+r21.22
+23.242526r
+-27.28r
-29.30r
-.313233r
r-0.343536rr
r.34r
3536.r
r+37.38
Liczba -0.1234 jest mniejsza niz liczba .2 i wieksza niz liczba -1;
i123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789i
もちろん、Integer、Double、BigInteger などがあります。それらを Collection に入れて並べ替えたいと思います。この入力を 3 回パスすれば、これは難しくありません。
1. Create regex for integers and filter the input add those integers into collection
2. Create regex for doubles and filter the input add those doubles into collection
3. Create regex for bigIntegers and filter the input add those bigIntegers into collection
4.Sort this collection of BigDecimals.
しかし、これはばかげているようです。これらすべての数値を入力の 1 回のパスでコレクションに入れる方法はありますか? 正規表現の使用。
編集:
12,12 == 12.12 --> double
12i --> i does not count this is integer 12
EDIT2: 正しい出力順序
-29.30
-27.28
-12
-1
-0.343536
-0.313233
-0.1234
0.2
0.34
11
12
13.14
15
16
17.18
19.20
21.22
23.242526
37.38
78
910
3456
3536
123456789123456789123456789123456789123456789123456789123456789123456789123456789123456789