Java经典编程题50道之四十

将几个字符串排序(按英文字母的顺序)。

public class Example40 {
    public static void main(String[] args) {
        String[] s={"math","english","java","java web","rose"};
        stringSort(s);
    }

public static void stringSort(String[] s) {
        String temp = null;
        
        for (int i = 0; i < s.length; i++) {
            for (int j = i + 1; j < s.length; j++) {
                if (compare(s[i], s[j])) {
                    temp = s[i];
                    s[i] = s[j];
                    s[j] = temp;
                }
            }
        }
        for (int i = 0; i < s.length; i++) {
            System.out.println(s[i]);
        }
    }
    public static boolean compare(String s1, String s2) {
        boolean result = true;
        for (int i = 0; i < s1.length() && i < s2.length(); i++) {
            if (s1.charAt(i) > s2.charAt(i)) {
                result = false;
                break;
            } else if (s1.charAt(i) < s2.charAt(i)) {
                result = true;
                break;
            } else {
                if (s1.length() < s2.length()) {
                    result = true;
                } else {
                    result = false;
                }
            }
        }
        return result;
    }
}

时间: 2024-10-17 06:32:24

Java经典编程题50道之四十的相关文章

Java经典编程题50道之四十六

编程实现两个字符串的连接. public class Example46 {    public static void main(String[] args) {        addString("hello"," world!");    }    public static void addString(String s1,String s2){        String s3=s1+s2;        System.out.println("

Java经典编程题50道之四十八

某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. public class Example48 {    public static void main(String[] args) {        f(2345);    } public static void f(int num) {        int[] c = new int[4];      

Java经典编程题50道之四十九

计算某字符串中子串出现的次数. public class Example49 {    public static void main(String[] args) {        String s1 = "adcdcjncfb";        String s2 = "";        count(s1, s2);    } public static void count(String str1, String str2) {        int cou

Java经典编程题50道之四十二

809*??=800*??+9*??+1,其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数.求??代表的两位数,以及809*??后的结果. public class Example42 {    public static void main(String[] args) {        f();    } public static void f() {        int a = 809, b, i;        for (i = 10; i < 13; i++)

Java经典编程题50道之四十五

判断一个整数能被几个9整除. public class Example45 {    public static void main(String[] args) {        f(729);    } public static void f(int n) {        int tmp = n;        int count = 0;        for (int i = 0; tmp % 9 == 0;) {            tmp = tmp / 9;         

Java经典编程题50道之四十四

求0~7所能组成的奇数个数.分析:组成1位数是4个,组成2位数是7*4个,组成3位数是7*8*4个,组成4位数是7*8*8*4个…… public class Example44 {    public static void main(String[] args) {        f();    } public static void f() {        int sum = 4;        int j;        System.out.println("组成1位数是 &quo

Java经典编程题50道之五十

有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 "stud"中. public class Example50 {    public static void main(String[] args) {        stud();    } public static void stud() {        Scanner ss = new Scanner(System.in); 

Java经典编程题50道之四十七

读取7个数(1~50)的整数值,每读取一个值,程序打印出该值个数的*. public class Example47 {    public static void main(String[] args) {        int[] a = { 10, 7, 6, 15, 4, 3, 20 };        display(a);    } public static void display(int[] a) {        System.out.print("读取的整数有:"

Java经典编程题50道之十八

两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人,以抽签决定比赛名单.有人向队员打听比赛的名单:a说他不和x比,c说他不和x. z比.请编程序找出三队赛手的名单. public class Example18 {    public static void main(String[] args) {        vs();    } public static void vs() {        char[] m = { 'a', 'b', 'c' };