【问题标题】:Sorting a char array in java [closed]在java中对char数组进行排序[关闭]
【发布时间】:2023-03-07 10:49:01
【问题描述】:

如何在 Java 中对 char 数组进行排序?我知道我可以使用 java.util.Arrays.sort(),但是如果我想手动排序呢?使用冒泡排序什么的?

注意字符串是“cab”,排序后的结果应该是“abc”。我不知道如何排序,我知道如何排序整数,但我不知道如何排序 char 数组。

这是我的代码:

String s1 = "cab";
char[] arr;
arr = s1.toCharArray();

//Could use
//java.util.Arrays.sort(arr);
//But want to do it manually using something like bubble sort

s1 = new String(arr);

【问题讨论】:

  • 您的作业需要使用冒泡排序吗?
  • 不清楚你在问什么。你问怎么write a bubble sort algorithm?或者您是在问如何访问数组中的各个项目?
  • 如果您知道如何对整数数组进行排序,那么也可以这样做,但将类型从 int 更改为 char 以及比较方法(if char1 < char2 事物)。
  • 用于你的字符排序,从'*'和'/'你想先来哪个

标签: java arrays sorting char


【解决方案1】:

字符可以直接比较,因为比较运算符是重载的。 w>q 即

arr[1]>arr[0] 

是有效的并给出真实的。因此,只需将它们视为冒泡排序算法中的整数即可。

【讨论】:

    【解决方案2】:

    我不知道这个解决方案是不是最好的方法,老实说我不认为是。

    但我编写了一小段代码,按以下步骤对数组进行排序:

    创建一个从 0 到 array.size() * array.size() 的 for 循环。

    创建一个在循环外为0的索引变量(int)

    在循环中添加一个try catch和catch OutOfBoundsException,在catch中设置索引为0。

    在尝试中,您将获得数组的“索引”,

    char c = array[index]
    

    并与索引+1比较

      c.compareTo(array[index +1])
    

    如果是正数 >0,则切换两个项目的位置 array[index]array[index + 1]

    如果对您没有意义,我可以提供代码示例,但不会在从现在起大约 2 小时后......

    这就是我的意思:

    public static ArrayList<mContact> SortByName(ArrayList<mContact> arr)
    {
    int i = 0;
        for (int o = 0; o < arr.size() * arr.size(); o++)
        {
            try
            {
                int c = arr.get(i).getName().compareTo(arr.get(i + 1).getName());
                if (c > 0)
                {
                    mContact con = new mContact(arr.get(i).getName());
    
                    arr.get(i).setName(arr.get(i+1).getName());
    
                    arr.get(i+1).setName(con.getName());
    
                }
                i++;
            }
            catch (IndexOutOfBoundsException ex)
            {
                i = 0;
            }
        }
        return arr;
    }
    

    按联系人姓名升序对列表进行排序。

    compareTo 方法返回一个整数,表示两个字符串的差异。如果它们相同,则为 0!

    【讨论】:

    • 是的,示例代码会有所帮助。
    • 我写的适用于字符串,你也可以使用 Sesha H 的答案对其进行优化
    【解决方案3】:

    使用冒泡排序之类的?

    是的,冒泡排序会起作用。或者您可以使用任何其他著名的排序算法;例如如this Wikipedia page 中所列...或任何关于数据结构和算法的优秀教科书。

    (但不,我不会为你编写代码。)

    【讨论】:

      【解决方案4】:

      您可以比较每个字符的 ASCII 值或使用 parseInt 将每个字符转换为 int 并比较它们的值。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-18
        • 1970-01-01
        • 2011-04-25
        • 2023-03-14
        • 1970-01-01
        • 2018-05-07
        • 2020-10-27
        • 1970-01-01
        相关资源
        最近更新 更多