Rumah >Java >javaTutorial >Mengapa Kaedah Ganti Rentetan Java Saya Tidak Berfungsi?
Menyelesaikan Masalah Java String Replace Isu
Apabila bekerja dengan rentetan Java, penting untuk diingat bahawa rentetan tidak boleh diubah. Ini bermakna bahawa sebarang perubahan yang dibuat pada rentetan mencipta objek rentetan baharu dan bukannya mengubah suai yang sedia ada.
Pertimbangkan kod berikut:
String delimiter = "\*\*"; String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>"; Map<String, String> mp = new HashMap<String, String>(); mp.put("USERNAME", "User A"); mp.put("PASSWORD", "B"); for (Entry<String, String> entry : mp.entrySet()) { html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue()); }
Anda mungkin menjangkakan kod ini menggantikan " USERNAME" dan "PASSWORD" ruang letak dalam rentetan HTML dengan nilai daripada peta. Walau bagaimanapun, ini tidak berlaku kerana kaedah replace() tidak mengubah suai rentetan sedia ada. Sebaliknya, ia mencipta rentetan baharu dengan penggantian dibuat.
Untuk menyelesaikan isu ini, anda perlu menetapkan rentetan baharu kepada pembolehubah html:
html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
Dengan melakukan ini, anda' akan mencipta rentetan baharu yang merangkumi penggantian dan menetapkannya kepada rujukan html. Dengan cara ini, perubahan akan ditunjukkan dalam rentetan html asal.
Atas ialah kandungan terperinci Mengapa Kaedah Ganti Rentetan Java Saya Tidak Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!