Sự khác nhau giữa 2 chuỗi này

java

(Trinity) #1

em có viết 1 đoạn code nhỏ để send 1 post request bằng HttpsURLConnection và đã xảy ra 1 lỗi vô cùng kì quặc đó là :

với params define như thế này :

String p = "param1=1&param2=2";

thì send được không lỗi
nhưng define như này :

String p = "param1=1"
                    +"&param2=2";

khi gửi lên server thì lỗi error params

hix em tìm ra lỗi rồi : không hiểu sao dấu & trong code của em khi chạy nó thành dấu & to , nên khi send request thì bị lỗi , còn copy ở ngoài cho thẳng vào thì dấu & đúng


(Trần Hoàn) #2

Bạn chỉ cần viết một chương trình console thế này để kiểm tra xem 2 chuỗi có khác nhau không. Nhớ là copy đúng chuỗi ban đầu chứ đừng gõ lại.

String p1 = "param1=1&param2=2";
String p2 = "param1=1" + "&param2=2";
if (p1.equals(p2))
    System.out.println("EQUAL");
else
    for (int i = 0; i < Math.min(p1.length(), p2.length(), i += 1)
        if (p1.charAt(i) != p2.charAt(i))
            System.out.println(p1.charAt(i) + " is different from " + p2.charAt(i));

(Trinity) #3

thanks bạn, hix copy từ chỗ khác paste vào nhìn thì tưởng giống nhưng khi chạy ra code nó khác nhau @@ … mất 3 ngày để tìm ra lỗi này


(SITUVN.gcd) #4

Trong quá trình sao chép từ nguồn khác, có thể có 1 vài kí tự đặc biệt (không hiển thị), sẽ gây lỗi cú pháp.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?