30/09/2018, 19:59

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

Ai Android viết 22:03 ngày 30/09/2018

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

terrypaton viết 22:09 ngày 30/09/2018

ủ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ứ

Ai Android viết 22:13 ngày 30/09/2018

hàm str.replace sẽ trả về 1 string mới không thay đổi str nhé

X viết 22:02 ngày 30/09/2018

bạn chịu khó đọc topic này nhé! Hay đấy

stackoverflow.com
rocking

Why is String immutable in Java?

java, string
asked by rocking on 06:38AM - 14 Mar 14

terrypaton viết 22:04 ngày 30/09/2018

ồ, vậy nếu mình sửa lại str = str.replace(arrStr[i] + k, arrStr[i] + “_” + k); là chắc ok

terrypaton viết 22:04 ngày 30/09/2018

ồ để mình tham khảo

Ai Android viết 22:06 ngày 30/09/2018

1
glhf

Bài liên quan
0