在 Java 中对字符串进行排序

Abdul Mateen 2023年10月12日
  1. 使用 Array.sort() 方法对 Java 中的单个字符串进行排序
  2. 在 Java 中使用 for 循环对单个字符串进行排序
在 Java 中对字符串进行排序

本教程文章演示了如何在 Java 中对单个字符串进行排序。

最常用的排序是按字母顺序排列。排序是将数据转换为标准格式并创建人类可读格式的过程。

在 Java 中对单个字符串进行排序有以下两种方法。

  • Array.sort() Method
  • User-Defined Method

使用 Array.sort() 方法对 Java 中的单个字符串进行排序

在 Java 中,字符串是不可变的,这意味着如果一个字符串对象已经被创建过一次,那么在内存中就不能改变字符串。我们也不能访问字符串中的单个字符。

我们可以使用 Array.sort() 方法对 Java 中的单个字符串进行排序。字符串类没有排序方法。在对字符串进行排序时,主要的思路是使用 toCharArray() 方法将给定的字符串转换为一个字符数组。然后,我们使用 Arrays.sort() 方法对该数组进行排序。

使用 Arrays.sort() 方法对单个字符串进行排序的例子如下。

import java.util.Arrays;

public class StringSorting {
  public static void main(String args[]) {
    String STR = "java";
    char[] StringtoChar = STR.toCharArray();
    Arrays.sort(StringtoChar);
    String SortedString = new String(StringtoChar);
    System.out.println("The Unsorted String is : " + STR);
    System.out.println("The Sorted String is : " + SortedString);
  }
}

输出:

The Unsorted String is : java
The Sorted String is : aajv

在上面的代码中,我们创建了一个字符串,其中存储了 java。使用 toCharArray() 方法将其转换为字符数组后,我们使用 Arrays.sort 对转换后的字符数组进行排序,并将排序后的数组类型化为字符串。

在 Java 中使用 for 循环对单个字符串进行排序

我们可以使用 for 循环对单个数组进行排序,并在每次迭代中对元素进行比较。但是我们知道,我们不能访问一个字符串中的单个字符,将该字符串转换为字符数组。那么我们通过使用两个循环来遍历字符数组,将每个元素与其他元素进行比较。

使用用户定义的方法对单个字符串进行排序的例子如下。

import java.util.Arrays;

public class StringSorting {
  public static void main(String args[]) {
    String STR = "java";
    char[] StringtoChar = STR.toCharArray();
    for (int i = 0; i < (StringtoChar.length - 1); i++) {
      for (int j = i + 1; j > 0; j--) {
        if (StringtoChar[j] < StringtoChar[j - 1]) {
          char Temp = StringtoChar[j - 1];
          StringtoChar[j - 1] = StringtoChar[j];
          StringtoChar[j] = Temp;
        }
      }
    }
    String SortedString = new String(StringtoChar);
    System.out.println("The Unsorted String is : " + STR);
    System.out.println("The Sorted String is : " + SortedString);
  }
}

输出:

The Unsorted String is : java
The Sorted String is : aajv

在上面的代码中,我们创建了一个字符串,其中存储了 java

我们在这里使用了两个 for 循环。第一个循环是对字符数组进行迭代,第二个循环避免了比较中的重复。如果第二个循环里面的条件(StringtoChar[j]<StringtoChar[j-1])为真,则执行交换,并对数组进行排序。

相关文章 - Java String