Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mengeluarkan Nombor daripada Rentetan Menggunakan Ungkapan Biasa Java?

Bagaimanakah Saya Boleh Mengeluarkan Nombor daripada Rentetan Menggunakan Ungkapan Biasa Java?

Linda Hamilton
Linda Hamiltonasal
2024-12-26 17:12:15587semak imbas

How Can I Extract Numbers from a String Using Java Regular Expressions?

Mengekstrak Nombor daripada Rentetan Menggunakan Ungkapan Biasa

Untuk mengekstrak nombor daripada rentetan ke dalam tatasusunan integer menggunakan ungkapan biasa, anda boleh menggunakan Kelas Corak dan Padanan di Jawa. Inilah penyelesaiannya:

Penyelesaian:

Pattern p = Pattern.compile("-?\d+");
Matcher m = p.matcher("There are more than -2 and less than 12 numbers here");
LinkedList<Integer> numbers = new LinkedList<>();

while (m.find()) {
   numbers.add(Integer.parseInt(m.group()));
}

System.out.println(numbers); // prints [-2, 12]

Penjelasan:

  • p = Pattern.compile( "-?\d "): Baris ini menyusun corak ungkapan biasa yang sepadan dengan mana-mana nombor, yang secara pilihan boleh mempunyai negatif terkemuka tanda.
  • m = p.matcher("..."): Baris ini mencipta objek Matcher menggunakan corak dan rentetan yang ditentukan.
  • Gelung sementara berulang ke atas semua padanan yang ditemui oleh the Matcher.
  • numbers.add(Integer.parseInt(m.group())): Untuk setiap padanan, nilai berangka diekstrak menggunakan m.group() dan kemudian dihuraikan menjadi integer menggunakan Integer.parseInt().
  • Hasilnya ialah Senarai Terpaut bagi integer yang mengandungi nombor yang diekstrak.

Perhatikan bahawa -? bahagian dalam corak mengendalikan nombor negatif. Jika anda tidak mahu membenarkan nombor negatif, anda boleh mengeluarkannya daripada corak.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Nombor daripada Rentetan Menggunakan Ungkapan Biasa Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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