Bagaimanakah untuk Menyingkirkan Rentetan Java Literal dalam Java?
Java tidak menyediakan fungsi yang mudah untuk tidak melepaskan literal rentetan. Tugasan ini memerlukan menukar urutan melarikan diri aksara secara manual kepada aksara yang sepadan.
Meloloskan Watak Biasa
Escape Sequence | Character |
---|---|
Backslash | |
n | Newline |
r | Carriage return |
t | Tab |
b | Backspace |
f | Form feed |
" | Double quote |
' | Single quote |
Huruf Rentetan yang Tidak Terhindar
Satu pendekatan untuk melepaskan literal rentetan ialah menggunakan fungsi tersuai yang berulang melalui rentetan, mengenal pasti urutan melarikan diri dan menggantikannya dengan aksara yang sesuai.
public static String unescape(String str) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (c == '\') { i++; switch (str.charAt(i)) { case 'n': sb.append('\n'); break; case 'r': sb.append('\r'); break; case 't': sb.append('\t'); break; case 'b': sb.append('\b'); break; case 'f': sb.append('\f'); break; case '\"': sb.append('\"'); break; case '\'': sb.append('\''); break; case '\': sb.append('\'); break; default: sb.append(c); // Unrecognized escape sequence } } else { sb.append(c); } } return sb.toString(); }
Contoh:
String original = "\\"Hello, World!\\""; String unescaped = unescape(original); System.out.println(unescaped); // Output: "Hello, World!"
Libraries for String Unnescaping
Sesetengah pustaka pihak ketiga juga menyediakan fungsi untuk tidak melepaskan literal rentetan. Contohnya, pustaka Apache Commons Lang mempunyai kaedah berikut:
public static String unescapeJava(String str)
Kaedah ini boleh digunakan untuk melepaskan literal rentetan Java, termasuk jujukan melarikan diri yang tidak diliputi oleh pendekatan asas yang disebutkan di atas.
Atas ialah kandungan terperinci Bagaimana untuk Menyingkirkan Java String Literal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!