首页 > 解决方案 > 具有相同起始字母的名称排列

问题描述

public class solution{
    public static void main(String [] args){
        String[] priya={"priya","nandhni","nithesh","varan","rekha","sri"};
        System.out.println(priya);
        int n=priya.length;
        for(int i=0,j=i+1;i<n;i++){
           if(priya[i].compareTo(priya[j])>0)
           {
               String temp=priya[i];
               priya[i]=priya[j];
               priya[j]=temp;
           }
        }
        for(int i=0;i<n;i++){
        System.out.println(priya[i]);
        }
    }
}

升序的输出为

nandhni
varan
nithesh
priya
rekha
sri.

这里有什么错误?

标签: javastring

解决方案


排序逻辑错误,你只是在做一次元素比较

更正一项如下:

for (int i = 0; i < n; i++) { 
    for (int j = i + 1; j < n; j++) {
        if (priya[i].compareTo(priya[j]) > 0) {
            String temp = priya[i];
            priya[i] = priya[j];
            priya[j] = temp;
        }
    }
}

推荐阅读