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);
	}
    arr[0] là chữ "Day" mà

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.

1 Like

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")

2 Likes

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

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