30/09/2018, 18:09

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.

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

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

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

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

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

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

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

ý 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ả.

Cương Nguyễn viết 20:20 ngày 30/09/2018

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;
}

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;
}
Bài liên quan
0