Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menggantikan Berbilang Substring dengan Cekap dalam Rentetan Java?

Bagaimanakah Saya Boleh Menggantikan Berbilang Substring dengan Cekap dalam Rentetan Java?

Linda Hamilton
Lepaskan: 2024-11-05 06:42:02
asal
950 orang telah melayarinya

How Can I Efficiently Replace Multiple Substrings in a Java String?

Menggantikan Berbilang Subrentetan dalam Rentetan dengan Cekap dalam Java

Apabila berhadapan dengan keperluan untuk menggantikan berbilang subrentetan dalam rentetan, ia menggoda untuk menggunakan pendekatan kekerasan berulang kali menggunakan kaedah string.replace(). Walau bagaimanapun, ini boleh menjadi tidak cekap untuk rentetan besar atau apabila bekerja dengan banyak rentetan.

Mengeksploitasi Ungkapan Biasa

Penyelesaian yang lebih cekap melibatkan memanfaatkan ungkapan biasa. Ungkapan biasa membolehkan anda menentukan corak carian yang kompleks dan melakukan transformasi teks dalam satu operasi.

Contoh Penggunaan

Pertimbangkan senario di mana anda ingin menggantikan token seperti " �t%" dan "�purata%" dengan nilai yang disimpan dalam peta. Menggunakan StringUtils daripada Apache Commons Lang, anda boleh mencipta corak dan pemadan seperti berikut:

<code class="java">Map<String,String> tokens = new HashMap<>();
tokens.put("cat", "Garfield");
tokens.put("beverage", "coffee");

String template = "%cat% really needs some %beverage%.";

// Create pattern of the format "%(cat|beverage)%"
String patternString = "%(" + StringUtils.join(tokens.keySet(), "|") + ")%";
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(template);</code>
Salin selepas log masuk

Seterusnya, anda boleh menggunakan pemadan untuk mencari semua kejadian token dan menggantikannya dengan nilai yang sepadan:

<code class="java">StringBuffer sb = new StringBuffer();
while(matcher.find()) {
    matcher.appendReplacement(sb, tokens.get(matcher.group(1)));
}
matcher.appendTail(sb);

System.out.println(sb.toString());</code>
Salin selepas log masuk

Faedah Ungkapan Biasa

Setelah ungkapan biasa disusun, mencari rentetan input biasanya sangat pantas. Selain itu, ungkapan biasa memberikan fleksibiliti untuk mengendalikan corak carian yang kompleks, seperti yang melibatkan kurungan dan pengkuantiti.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Berbilang Substring dengan Cekap dalam Rentetan Java?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan