Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Isih Rentetan dengan Nombor Terbenam, Mengutamakan Leksikal dan kemudian Perbandingan Berangka?

Bagaimanakah Saya Boleh Isih Rentetan dengan Nombor Terbenam, Mengutamakan Leksikal dan kemudian Perbandingan Berangka?

DDD
Lepaskan: 2024-12-16 13:28:10
asal
705 orang telah melayarinya

How Can I Sort Strings with Embedded Numbers, Prioritizing Lexical and then Numeric Comparison?

Mengisih Rentetan dengan Nombor Terbenam

Dalam senario ini, anda mempunyai keperluan khusus untuk perbandingan rentetan, di mana bahagian utama dibandingkan secara leksikal, dan jika ia sepadan, nilai integer terbenam menjadi asas untuk perbandingan. Untuk mencapai matlamat ini, mempertimbangkan kehadiran ruang yang berbeza-beza di sekeliling nilai angka, pendekatan tersuai dicadangkan.

Algoritma Alphanum

Penyelesaian yang disyorkan ialah menggunakan "Algoritma Alphanum " seperti yang dicadangkan oleh laman web yang disebut dalam jawapan. Algoritma ini menyediakan gelagat pengisihan yang konsisten yang sejajar dengan persepsi manusia.

Pelaksanaan

Algoritma Alphanum berfungsi dengan membandingkan aksara secara berulang dari permulaan dan akhir rentetan sehingga ketidakpadanan ditemui. Apabila bahagian yang berbeza ditemui, ia mengekstrak nombor terbenam menggunakan ungkapan biasa. Jika rentetan mengandungi nombor boleh tukar, ia menjalankan perbandingan berangka; jika tidak, ia melakukan perbandingan leksikal pada bahagian yang diekstrak.

Pelaksanaan Pembanding

Pelaksanaan Java Comparator bagi Algoritma Alphanum tersedia di pautan yang disediakan. Dengan menyepadukan pembanding ini, anda boleh mengisih rentetan mengikut spesifikasi yang diingini, mengutamakan perbandingan leksikal untuk bahagian bukan angka dan memanfaatkan perbandingan berangka untuk nilai integer terbenam.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Rentetan dengan Nombor Terbenam, Mengutamakan Leksikal dan kemudian Perbandingan Berangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan