如何使用compareToIgnoreCase

时间:2014-06-09 03:08:01

标签: java arrays sorting

我得到了一个关于如何按字母顺序对数组中的Actor对象进行排序的示例。

public class AlphaSortingExchange
{
 public static void main(String[ ] args)
 {
         String[ ] names = {"joe", "slim", "ed", "george"};
         sortStringExchange (names);
         for ( int k = 0;  k < 4;  k++ )
            System.out.println( names [ k ] );
  }

  public static void sortStringExchange( String  x [ ] )
  {
        int i, j;
        String temp;

        for ( i = 0;  i < x.length - 1;  i++ )
        {
            for ( j = i + 1;  j < x.length;  j++ )
            { 
                     if ( x [ i ].compareToIgnoreCase( x [ j ] ) > 0 )
                      {                                             // ascending sort
                                  temp = x [ i ];
                                  x [ i ] = x [ j ];    // swapping
                                  x [ j ] = temp;

                       }
               }
         }
  }
}

我只允许在排序数组时使用这种格式。 NetBeans不喜欢&#34; compareToIgnoreCase&#34;在我的代码中声明,给出错误

  

&#34;找不到符号:方法compareToIgnoreCase(Actors)的位置类   演员&#34;

。下面是我的排序功能。

public static void sortActors(Actors actors[]) {

    int i, j;
    Actors temp;

    for (i = 0; i < actors.length - 1; i++)
    {
        for (j = i + 1; j < actors.length; j++)
        {
            if (actors[i].compareToIgnoreCase(actors[j]) > 0)
            {
                temp = actors[i];
                actors[i] = actors[j];
                actors[j] = temp;
            }
        }
    }
}

这是我的对象数组和数组中对象的示例。就像我之前说过的,我只能使用compareToIgnoreCase。我对如何使用这个功能感到茫然

private static void createActorsList() {

    Actors[] actors = new Actors[Constants.NUMBER_OF_ACTORS];

    Actors ladyViolet = new Actors();
    ladyViolet.setName("Lady Violet");
    ladyViolet.setDialogue("dialogue");
    ladyViolet.setHappiness(0);
    ladyViolet.setHealth(100);
    actors[Constants.VIOLET] = ladyViolet;
}

非常感谢任何帮助或解决方案!

提前致谢!

1 个答案:

答案 0 :(得分:1)

您的Actor课程没有compareToIgnoreCase方法。你可能意味着在一个类的字段上调用该方法,例如,

if (actors[i].getName().compareToIgnoreCase(actors[j].getName()) > 0)

如果该方法需要在Actor课程上,您必须编写自己的实现:

public int compareToIgnoreCase(Actor actor) {
    return this.name.compareToIgnoreCase(actor.name);
}