Không thể replace tring trong android
Chào
Trong android có lệnh replace cấu trúc như sau : String str1 = str1.replace(“str2”,“str3”) . Nhưng khi mình áp dụng vào để phù hợp với mục đích sử dụng của mình lại không được, replace không thay thế
String str = "NUM1 NUM2 NUM3 NUM4 NUM5";
String t ="";
String[] arrStr = {"N", "U", "M"};
for (int i = 0; i < arrStr.length; i++) {
for (int k = 1; k < 10; k++) {
t = str.replace(arrStr[i] + k, arrStr[i] + "_" + k);
}
}
System.out.println(t);
Kết quả là t luôn luôn là t =“NUM1 NUM2 NUM3 NUM4 NUM5”; Nó không replace thay đổi gì
code trên chỉ là ví dụ cho code của mình , vì code mình dài lắm, Cái chính là mình muốn hỏi tại sao
replace(arrStr[i] + k, arrStr[i] + "_" + k);
không hoạt động, nếu thay bằngreplace("M"+3,"M"+"_"+3)
thì nó hoat động
cái giá trị cuối cùng của t là
t= str.replace(“M9”,“M_9”);
không thay tìm thấy M9 nên nó không đổi là đúng rồi bạn
ủa phải vậy hok, mình nghĩ là đoạn code đó nó sẽ ví dụ: i = 2, k = 3 thì
arrStr[2] +k = "M" + 3
sau đó replace với"M"+"_"+3
rồi tiếp tục tìm và replace tiếp chứhàm str.replace sẽ trả về 1 string mới không thay đổi str nhé
bạn chịu khó đọc topic này nhé! Hay đấy
stackoverflow.com
Why is String immutable in Java?
ồ, vậy nếu mình sửa lại str = str.replace(arrStr[i] + k, arrStr[i] + “_” + k); là chắc ok
ồ để mình tham khảo
1
glhf
…