字符串 按單詞逆序

/**
 * London bridge is falling down --> down falling is bridge London
 * @author wdede
 *
 */

public class London {
	public static void main(String[] args) {
        //運行完rev():nwod gnillaf si egdirb nodnoL
		char[] s = rev("London bridge is falling down");
        //運行完subRev():down falling is bridge London
		subRev(s);
	}

	public static char[] rev(String str) { // 將整個字符串按字母倒置
		char temp;
		int len;
		len = str.length();
		char[] chr = str.toCharArray();
		for (int i = 0, j = len - 1; i < j; i++, j--) {
			temp = chr[j];
			chr[j] = chr[i];
			chr[i] = temp;
		}
		return chr;
	}

	public static void subRev(char[] chars) { //將每個單詞正序(交換char數組中的位置即可)
		char temp;
		int len = chars.length;
		int i = 0, p = 0, q = 0;
		char ch;
		while (i < len) {
			while (chars[i++] != ' ') {
				q++;
				if (i == len) {
					break;
				}
			}

			for (int m = p, n = q - 1; m < n; m++, n--) {
				temp = chars[n];
				chars[n] = chars[m];
				chars[m] = temp;
			}
			q += 1;
			p = q;
		}
		System.out.println(chars);
	}

}

 

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