30/09/2018, 18:13

Hỏi về hàm split String trong Java

Cho mình hỏi vì sao phép so sánh cuối cùng lại trả về false trong khi in ra thì giống nhau ?

public static void main(String [] args) {
		String name = "Day Nhau Hoc";
		String [] arr = name.split("");
		System.out.println(arr[0]);
		String n = "D";
		System.out.println(arr[0] == n);
	}
Nguyễn Văn Tâm viết 20:29 ngày 30/09/2018
    arr[0] là chữ "Day" mà
Nguyen Ca viết 20:29 ngày 30/09/2018

Debug là bạn sẽ thấy, nó là arr[1], hơn nữa
== là so sánh object không phải value.2 object đó khác nhau nên ra sai. Dùng equal ấy.

LazyCat viết 20:19 ngày 30/09/2018

Kiểu String không so sánh như thế được, theo như cách bạn làm là so sánh 2 địa chỉ chứ không phải so sánh 2 giá trị. Toán tử == chỉ áp dụng cho các primitive type.
Muốn so sánh 2 giá trị String như trên thì phải làm thế này arr[0].equals("D")

viết 20:20 ngày 30/09/2018

Cám ơn các bạn nhé

Bài liên quan
0