Khai báo string trong method Java

Mình có một class, trong class đó có method như thế này

public String reverseStr(String str) {
		
		String [] str_temp = str.split(" ");
		String result = new String();
		for(int i = str_temp.length - 1; i >= 0; i--) {
			result += str_temp[i] + " ";
		}
	
		return result;
	}

Cho mình hỏi chỗ khai báo result tại sao lại phải tạo Object String rồi gán vào biến đó mới đc.

Do toán tử += rồi, ai giải thích giúp mình với

vì spit() trả lại một mảng mà giá trị trả về ở đây phải là một String mà

Mình split ra str_temp nhé, trả về result, ko lq gì cả

ý bạn hỏi là chỗ nào?

String là một reference data type. Mặc định giá trị của nó là null.
Null là không trỏ đến đâu cả. Không thể dùng nó để cộng với cái gì được cả.

2 Likes

Bạn có thể gán giá trị ban đầu cho nó và giảm bớt vòng for đi 1 lần:

public String reverseStr(String str) {

String [] str_temp = str.split(" ");
if (str_temp.length != 0) {
    String result = str_temp[0];
    for(int i = str_temp.length - 1; i > 0; i--) {
        result += str_temp[i] + " ";
    }

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