Java_字符串排序

package cn.myAlgorithm;

class StrSort {
	public static void main(String[] args) {
		String[] str = new String[6];
		str[0] = "abduction";
		str[1] = "boy";
		str[2] = "applicant";
		str[3] = "apple";
		str[4] = "abduct";
		str[5] = "abandon";

		String temp;

		// 冒泡排序用自定义的compare方法比较字符串
		for (int i = 0; i < str.length; i++) {
			boolean flag = true;
			for (int j = 0; j < str.length - i - 1; j++) {
				if (!campare(str[j], str[j + 1])) {
					temp = str[j];
					str[j] = str[j + 1];
					str[j + 1] = temp;
					flag = false;
				}
			}
			if (flag) {
				break;
			}
		}

		for (String string : str) {
			System.out.println(string);
		}
	}

	// 两个字符串比较方法
	public static boolean campare(String str1, String str2) {
		// 两个字符串比较,前者小于后者,返回true,否则返回false
		boolean flag = true;
		for (int i = 0; i < str1.length() && i < str2.length(); i++) {
			// 比较相同为字符,从小到大排序
			if (str1.charAt(i) > str2.charAt(i)) {
				flag = false;
				break;
			} else if (str1.charAt(i) < str2.charAt(i)) {
				break;
			} else {
				// 如果相等,且没有比较到较短字符串的最后一位,继续for循环
				if (i != Math.min(str1.length() - 1, str2.length() - 1)) {
					continue;
				} else {
					// 如果较短字符串是较长的子串,则较长的排在后面
					if (str1.length() <= str2.length()) {
						break;
					} else {
						flag = false;
						break;
					}
				}
			}
		}
		return flag;
	}
}

结果
abandon
abduct
abduction
apple
applicant
boy

你可能感兴趣的:(Java_基础,算法)