繁体   English   中英

Java 用字符串排序数组

[英]Java sorting array with strings

嘿,我有这个项目,程序按降序显示团队分数,但问题是我无法切换团队名称,因此它们可以按顺序排列,因为团队名称数组是一个字符串。

 for(int i = 0;i<tabPTS.length;i++){ // tabEquipe is the array containing the team names.
       for (int j = i+1; j<tabPTS.length;j++){
           if(tabPTS[i]<tabPTS[j]){
               temp = tabPTS[i];
               tabPTS[i] = tabPTS[j];
               tabPTS[j] = temp;
           }
       }
   }
     System.out.println("Equipes: ");
    System.out.println();
    System.out.print("\t" + "PJ");
    System.out.print("\t" + "V");
    System.out.print("\t" +  "D");
    System.out.print("\t" +  "PTS");
    System.out.println();
   for(int i = 0;i<tabPTS.length;i++){
        int pos = i;

        System.out.println(tabEquipe[i] + "\t" +   tabPJ[i] + "\t"
                + tabVict[i] + "\t" +  tabDef[i] + "\t" + tabPTS[i]); 

   }

如果我正确理解了这个问题,您希望 output 团队名称和他们的分数按照他们的分数排序。 解决此问题的多种方法:

1) 尝试定义一个类型来保存团队名称和他们的分数,然后根据他们的分数对这些对象的数组进行排序。

2) 如果您必须将分数和球队名称分开 arrays,请在选择排序算法中不断切换球队名称数组中的值和分数数组。

对Java中的String数组进行排序,需要将数组的每个元素与所有剩余元素进行比较,如果结果大于0,则交换它们。

这样做的一种解决方案是,您需要使用两个循环(嵌套),其中内循环以 i+1 开始(其中 i 是外循环的变量)以避免比较重复。

这是示例

import java.util.Arrays;

public class StringArrayInOrder {
   public static void main(String args[]) {
      String[] myArray = {"JavaFX", "HBase", "OpenCV", "Java", "Hadoop", "Neo4j"};
      int size = myArray.length;

      for(int i = 0; i<size-1; i++) {
         for (int j = i+1; j<myArray.length; j++) {
            if(myArray[i].compareTo(myArray[j])>0) {
               String temp = myArray[i];
               myArray[i] = myArray[j];
               myArray[j] = temp;
            }
         }
      }
      System.out.println(Arrays.toString(myArray));
   }
}

这是上面代码的output

[HBase, Hadoop, Java, JavaFX, Neo4j, OpenCV]

您还可以使用Arrays class 的sort()方法对数组进行排序。

像这样

String[] myArray = {"JavaFX", "HBase", "OpenCV", "Java", "Hadoop","Neo4j"};
Arrays.sort(myArray);
System.out.println(Arrays.toString(myArray));

您可以像这样按降序对arr[]进行排序

String arr[] = {"p","q","c"}; 

// Sorts arr[] in ascending order 
        Arrays.sort(arr); 
        System.out.printf("Modified arr[] : \n%s\n\n", 
                          Arrays.toString(arr)); 

        // Sorts arr[] in descending order 
        Arrays.sort(arr, Collections.reverseOrder());

和 output

Modified arr[] : 


Modified arr[] : 
[q, p, c]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM