Rumah >Java >javaTutorial >Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Nombor daripada Rentetan dan Menyimpannya sebagai Tatasusunan Integer?

Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Nombor daripada Rentetan dan Menyimpannya sebagai Tatasusunan Integer?

Susan Sarandon
Susan Sarandonasal
2024-12-08 14:08:11716semak imbas

How Can Regular Expressions Extract Numbers from a String and Store Them as an Integer Array?

Mengekstrak Nombor daripada Rentetan Menggunakan Ungkapan Biasa

Masalah:

Diberi rentetan yang mengandungi kedua-duanya teks dan nombor, bagaimana kita boleh mengekstrak nombor ini dan menyimpannya dalam pelbagai integer?

Penyelesaian dengan Ungkapan Biasa:

Ungkapan biasa (regex) boleh digunakan sebagai kaedah ringkas dan cekap untuk memadankan dan mengekstrak corak tertentu daripada rentetan. Begini cara kita boleh menggunakan regex untuk menyelesaikan masalah ini:

import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.LinkedList;

String line = "There are more than -2 and less than 12 numbers here";

Pattern p = Pattern.compile("-?\d+");
Matcher m = p.matcher(line);

LinkedList<String> numbers = new LinkedList<>();
while (m.find()) {
  numbers.add(m.group());
}

// Convert the extracted strings to integers
int[] intArray = new int[numbers.size()];
for (int i = 0; i < numbers.size(); i++) {
  intArray[i] = Integer.parseInt(numbers.get(i));
}

System.out.println(intArray);

Dalam penyelesaian ini:

  • Kami menyusun corak regex -?d , yang sepadan dengan nombor yang didahului dengan negatif pilihan tanda (-).
  • Kami menggunakan objek Matcher untuk mencari semua kejadian corak ini dalam rentetan.
  • Kami menyimpan nombor yang dipadankan dalam senarai rentetan yang dipautkan.
  • Akhir sekali, kami menukar rentetan yang diekstrak kepada integer dan menyimpannya dalam tatasusunan int.

Pendekatan ini menyediakan penyelesaian yang bersih dan boleh digunakan semula untuk mengekstrak nombor daripada rentetan panjang dan kerumitan sewenang-wenangnya.

Atas ialah kandungan terperinci Bagaimanakah Ungkapan Biasa Boleh Mengeluarkan Nombor daripada Rentetan dan Menyimpannya sebagai Tatasusunan Integer?. 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