Javaでの文字列のソート

王林
リリース: 2024-08-30 15:32:11
オリジナル
1117 人が閲覧しました

Java での文字列の並べ替えは、Java ライブラリ内で直接メソッドを使用して文字列を並べ替えることができる組み込みの Java 機能ではありませんが、Java には Arrays.sort を使用して要素の配列を並べ替える手法が提供されています。 Java ライブラリによって提供されるいくつかの異なるメソッドを使用すると、Java で簡単に並べ替えることができ、文字列の並べ替えには Java アプリケーションでさまざまな使用例があります。

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

さまざまな方法を使用して Java で文字列を並べ替える方法?

これには、開発者がユースケースに応じて使用できる 2 つの主要なテクニックがあります。

  • テクニック 1: Array.sort() を使用する
  • テクニック 2: カスタム コンパレータを使用して Java で文字列を並べ替えます。
  • テクニック 3: Strings.chars とともに Java 8 ストリーム機能を使用する。

1.テクニック 1 – Array.sort()

を使用する

これは非常にシンプルで簡単なテクニックです。 Java で要素の配列を並べ替える方法と同様の方法と同様のロジックが適用されます。

この手法を実装するための手順と並べ替えの例を以下に示します。

  • ステップ 1: ユーザーから入力文字列を取得し、java.util.Arrays に存在する Arrays.toCharArray() メソッドを使用して入力文字列を文字の配列に変換します
  • ステップ 2: 同じ jar java.util.Arrays.
  • にも存在する Arrays.sort メソッドを使用して、この新しく作成された文字の配列に自然な並べ替えを適用します。
  • ステップ 3: Java 文字列クラスを使用して、このソートされた文字配列を文字列に変換し、文字列が不変であるため、新しく作成した文字列を文字列オブジェクトに格納します

例:

コード:

import java.util.Arrays;
import java.util.Scanner;
public class SortString {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input String Value which should be sorted : ");
String inputString = scanner.nextLine();
char arrayOfCharacters[] = inputString.toCharArray(); // Step 1
Arrays.sort(arrayOfCharacters); // Step 2
String sortedString = new String(arrayOfCharacters); // Step 3
System.out.println("Before Sorting :  " + inputString);
System.out.println("After Sorting :  " + sortedString);
}
}
ログイン後にコピー

出力:

Javaでの文字列のソート
Javaでの文字列のソート

制限事項:

  • これは、文字列内に存在する各文字の ASCII 値を使用して Java フレームワークによって実行されるのが理想的です。
  • 結果として、この手法は、必要な文字列の並べ替えで大文字と小文字が区別される場合にのみ使用する必要があります。つまり、大文字の ASCII 値が小文字よりも小さいため、文字列に両方の文字が含まれる場合、並べ替えは適切ではありません。大文字と小文字、つまり混合文字列。

例:

Javaでの文字列のソート

出力:

Javaでの文字列のソート

2.テクニック 2 – カスタム コンパレータの使用

この手法は主に、入力文字列に大文字と小文字が混在する可能性がある場合に使用されます。これは上記のような単純な手法ではなく、もう少しコーディングが必要です。 Java が提供する同じ配列ソート手法を使用しますが、それに加えて、文字列内の各文字を比較するのに役立つコンパレーターも使用します。

この手法を実装するための手順と、Java でのこのタイプの文字列ソートの例を以下に示します。

  • ステップ 1: ユーザーから入力文字列を取得し、Java for ループ機能を使用して入力文字列を文字の配列に変換します。
  • ステップ 2: Arrays.sort メソッドと、並べ替え中に大文字と小文字を無視するコンパレータを使用して、この新しく作成した文字の配列に Java 並べ替えを適用します。これは同じ jar java.util.Arrays に存在します。
  • ステップ 3: Java StringBuilder クラスを使用して、このソートされた文字配列を文字列に戻します。StringBuilder は可変であるため、新しく作成した文字列を文字列オブジェクトに格納する必要はありません。

例:

コード:

import java.util.Arrays;
import java.util.Scanner;
import java.util.Comparator;
public class SortString {
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Input a String Value which should be sorted : ");
String inputString = scanner.nextLine();
Character arrayOfCharacters[] = new Character[inputString.length()];
for (int i = 0; i < inputString.length(); i++) {
arrayOfCharacters[i] = inputString.charAt(i); // Step 1
}
Arrays.sort(arrayOfCharacters, new Comparator<Character>(){  // Step 2
@Override
public int compare(Character c1, Character c2)
{
return Character.compare(Character.toLowerCase(c1),
Character.toLowerCase(c2));
}
});
StringBuilder outputString = new StringBuilder(arrayOfCharacters.length);
for (Character c : arrayOfCharacters)
outputString.append(c.charValue());  // Step 3
System.out.println("Before Sorting : " + inputString);
System.out.println("After Sorting considering casing: " + outputString.toString());
}
}
ログイン後にコピー

出力:

Javaでの文字列のソート

Javaでの文字列のソート

制限事項:

  • このソート手法は、入力文字列に大文字と小文字を含む任意の値を指定できる Java でソートを実行する理想的な方法です。
  • この並べ替え手法には制限はありませんが、実装するにはコードが少し長くなります。

3.テクニック 3 – Java 8 ストリーム機能と Strings.chars メソッドを使用する

この手法は、コード行が最小限で、Java 8 ストリーム機能と Java 8 のみにインラインで提供される String.chars メソッドを使用する新しい手法です。したがって、この手法を適用するときは、Java アプリケーションが主に入力文字列に大文字だけでなく小文字も混在する可能性がある場合に使用されることを確認してください。これは上記のような単純な手法ではなく、もう少しコーディングが必要です。 Java が提供する同じ配列ソート手法を使用しますが、それに加えて、文字列内の各文字を比較するのに役立つコンパレーターも使用します。

結論

Java での文字列の並べ替えは非常に簡単で、さまざまなアプローチが用意されており、開発者はアプリケーションの要件に応じてこれらのいずれかを使用できます。これは、2 ライナー コードからまったく新しい並べ替えメソッドの作成まで多岐にわたります。また、大文字と小文字を無視して文字列を並べ替えることもできます。

以上がJavaでの文字列のソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート