02-編寫程序_把一個整數數組中的每個元素用逗號連接成一個字符串

01-題目:

1.編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串。 
2.例如,根據內容爲[1][2][3]的數組形成內容爲"1,2,3"的字符串。

02-思路:

1.創建一個整數數組。
2.構建一個StringBuilder(可變的字符串序列)
3.循環輸出。

03-介紹:

1.<<:是邏輯左移,右邊補0。
如:array.length的長度是4,二進制碼是0100;array.length<<1的長度是8<<表示將1左移一位,二進制碼是1000;(array.length<<1)-1的長度是72.append和+的區別?
在循環中使用+=會創建多個StringBuilder對象,效率低,而使用append(),只會創建一個。

代碼:

1.第一種方式

package com.eleven;

/**
 *1. 編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串。 
 * 2.例如,根據內容爲[1][2][3]的數組形成內容爲"1,2,3"的字符串。
 * 
 * @author sywangu
 *
 */
public class TwoDemo {
	public static void main(String[] args) {
		// 創建一個整數數組
		int[] array = new int[] { 1, 2, 3, 4 };
		// 構建一個StringBuilder(可變的字符串序列)
		StringBuilder sb = new StringBuilder();

		// array.length的長度爲4
		for (int i = 0; i < array.length - 1; i++) {
			sb.append(array[i] + ","); // 程序最後結果爲1,2,3,
		}
		sb.append(array[array.length - 1]); // 將最後一個元素單獨加上,解決末尾有","問題
		System.out.println(sb); // 結果爲:1,2,3,4
	}
}

2.第二種方式(推薦)

package com.eleven.test;

/**
 * 1.編寫一個程序,這個程序把一個整數數組中的每個元素用逗號連接成一個字符串。 
 * 2.例如,根據內容爲[1][2][3]的數組形成內容爲"1,2,3"的字符串。
 * 
 * @author sywangu
 *
 */
public class TwoDemoTest {
	public static void main(String[] args) {
		// 創建一個整數數組
		int[] array = new int[] { 1, 2, 3, 4 };
        // 構建一個StringBuilder
		StringBuilder sb = new StringBuilder((array.length << 1) - 1); // 避免數組長度過大時StringBuilder需要多次擴容
		// array.length的長度爲4
		for (int i = 0; i < array.length - 1; i++) {
			sb.append(array[i]).append(","); // 程序最後結果爲1,2,3,
		}
		sb.append(array[array.length - 1]); // 將最後一個元素單獨加上,解決末尾有","問題
		System.out.println(sb); // 結果爲:1,2,3,4
	}
}

3.第三種方式(推薦)

package com.eleven.test;

public class TwoDemoTestYh {

	public static void main(String[] args) {
		int[] array = new int[] { 1, 2, 3, 4 };	// 創建一個整數數組
		String list = listToIds(array);	// 調用listToIds方法
		System.out.println(list);
	}

	public static String listToIds(int[] list) {
		StringBuilder stringBuilder = new StringBuilder();	// 創建StringBuilder
		for (Object object : list) {	// for循環,每次都在數組後面追加逗號
			stringBuilder.append(object.toString()).append(",");	// 在每個數字後面追加一個逗號
		}
		if (stringBuilder.length() > 0) {
			stringBuilder.deleteCharAt(stringBuilder.length() - 1);	// 刪除最後一個索引前的字符
		}
		return stringBuilder.toString();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章