在 Java 中按字母顺序对字符串数组进行排序

您所在的位置:网站首页 compareto字符串 在 Java 中按字母顺序对字符串数组进行排序

在 Java 中按字母顺序对字符串数组进行排序

#在 Java 中按字母顺序对字符串数组进行排序 | 来源: 网络整理| 查看: 265

在 Java 中不使用内置方法对字符串数组进行排序 使用 Java 中的 stringArraySort() 方法对字符串数组进行排序 使用 Java 中的 compareTo() 方法对字符串数组进行排序 使用 Java 中的 Arrays.sort() 方法对字符串数组进行排序 在 Java 中按降序对字符串数组进行排序 通过忽略 Java 中的大小写对字符串数组进行排序 在 Java 中按字母顺序对字符串数组进行排序

本教程介绍如何在 Java 中按字母顺序对字符串数组进行排序。我们还列出了一些示例代码以帮助你理解该主题。

排序是按特定顺序排列数据。我们可以按升序或降序对整数进行排序,也可以按字典顺序对英文字符或单词进行排序。

디톡스 다이어트 식단 8가...

Please enable JavaScript

디톡스 다이어트 식단 8가지, 굶지 않고 할 수 있어요

字典顺序是单词出现在英语单词字典中时出现的顺序。在本指南中,我们将教你如何在 Java 中对字符串数组进行排序。

我们将本文中的字符串与更小或更大的词进行比较。如果一个字符串根据字典顺序首先出现,则该字符串小于另一个字符串。

此外,在字典顺序中,所有大写字母都在小写字母之前;这意味着以 Z 开头的单词将出现在排序数组中以 a 开头的单词之前。

在 Java 中不使用内置方法对字符串数组进行排序

我们将首先尝试在 Java 中实现我们自己的排序方法。我们将创建一个名为 compareStrings() 的方法,它比较两个字符串并告诉我们哪个更小或哪个更大。

接下来,我们将使用 compareStrings() 方法将每个字符串与数组中存在的所有其他字符串进行比较,并将该字符串放置在正确的位置。下面给出了这两种方法的算法。

此方法的输入将是两个字符串,它将返回一个整数值。该方法的输出如下。 如果 string1 > string2:返回正整数 如果 string1 < string2:返回负整数 如果 string1 == string2:返回 0 我们将同时循环遍历两个字符串的每个字符并比较它们的 Unicode 值。我们使用内置的 charAt() 方法来获取 Unicode 值。这些值允许我们将字符作为普通整数进行比较。 如果两个字符的 Unicode 值相同,我们将移至每个字符串的下一个字符。 如果 Unicode 值不同,那么我们返回值的差异。 当我们用完任一字符串中的字符时,循环结束。 如果两个字符串在循环外有不同的长度,那么我们返回这个差值。我们这样做是因为较小字符串的所有字符都可能出现在较长字符串的开头。例如,app 和 application。在这种情况下,较长的字符串将在较小的字符串之后。 如果字符串长度相同,我们将简单地返回 0,表示两个字符串是相同的。 使用 Java 中的 stringArraySort() 方法对字符串数组进行排序

此方法将字符串数组作为输入并返回排序后的数组。在这里,我们将有两个循环,一个嵌套在另一个循环中。它们用于将数组的每个元素与所有剩余元素进行比较。

我们使用 compareString() 方法对循环内的每对元素进行比较。如果第一个字符串比另一个更大,我们交换它们的位置。

完整的代码如下所示。

public class Main { public static int compareStrings(String word1, String word2) { for(int i = 0; i Blueberry Strawberry apple bananas oranges 使用 Java 中的 compareTo() 方法对字符串数组进行排序

在上面的代码中,我们编写了一个方法来比较两个字符串并返回一个整数值来表示如果它们出现在字典中,哪个字符串将首先出现。

Java 为我们提供了一个名为 compareTo() 的内置方法,它可以为我们完成这项工作。此方法的语法如下所示。

string1.compareTo(string2)

此方法的输出类似于我们之前定义的 compareStrings() 方法。

如果 string1 > string2:返回正整数 如果 string1 < string2:返回负整数 如果 string1 == string2:返回 0

以下代码演示了 compareTo() 方法如何在 Java 中工作。

public class Main { public static void main(String[] args) { System.out.println("apple".compareTo("orange"));// apple < orange System.out.println("AAA".compareTo("aaa"));// AAA < aaa System.out.println("ZZZ".compareTo("aaa"));// ZZZ < aaa System.out.println("zzz".compareTo("aaa"));// zzz > aaa System.out.println("strawberry".compareTo("strawberry"));// strawberry == strawberry } }

输出:

-14 -32 -7 25 0

我们可以使用 compareTo() 方法对数组进行排序。这个程序将与上面的前一个程序非常相似。唯一的区别是我们将使用 compareTo() 方法而不是我们之前定义的 compareStrings() 方法。

public class Main { public static String[] stringArraySort(String[] words) { for(int i = 0; i Blueberry Strawberry apple bananas oranges 使用 Java 中的 Arrays.sort() 方法对字符串数组进行排序

还有一种更简单的数组排序方法。我们可以使用 Arrays 类的 sort() 方法来做到这一点。此方法的语法如下所示。

Arrays.sort(stringArray)

默认情况下,它将按自然顺序(按字典顺序)对数组进行排序。但是,我们可以通过指定不同的比较器来更改此顺序。

比较器是一种用于比较两个对象并告诉我们哪个比另一个更小或更大的方法。sort() 方法使用 Quicksort 算法,时间复杂度为 O(n*log(n))。

以下代码显示了 sort() 方法的默认行为。

import java.util.Arrays; public class Main { public static void main(String[] args) { String[] arrToSort = {"apple", "oranges", "bananas", "Strawberry", "Blueberry"}; Arrays.sort(arrToSort); for(int i = 0; i oranges bananas apple Strawberry Blueberry 通过忽略 Java 中的大小写对字符串数组进行排序

要按字母顺序设置字符串数组但忽略字符的大小写,请使用下面的代码示例。

import java.util.Arrays; public class Main { public static void main(String[] args) { String[] arrToSort = {"apple", "oranges", "bananas", "Strawberry", "Blueberry"}; Arrays.sort(arrToSort, String.CASE_INSENSITIVE_ORDER);//case insensitive sort for(int i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3