logo

辞書順 Java

辞書編集順序という用語は、語彙順序、辞書編集(al) 積、アルファベット順、または辞書順序などの名前で知られる数学用語です。

このセクションでは、トピックの辞書編集順序、その定義、およびその他の詳細情報について説明します。その後、辞書編集上の順序の概念をどのように使用するかを学びます。 Java プログラミング言語

辞書編集順の定義

辞書編集的順序または数学における辞書編集とは、辞書のアルファベット順を、完全に順序付けられたリストの順序付けられた記号または要素の順序に一般化したものです。辞書編集順序という用語は、「辞書」という言葉によって動機付けられています。 Lexicon は他の言語で使用される単語のセットであり、従来の順序付けが行われています。したがって、辞書編集的順序は、基礎となる記号の順序が与えられる語順を形式化する方法です。

プログラミングでは、辞書編集順は一般に次のように知られています。 辞書の順序 文字列配列の並べ替え、2 つの文字列の比較、または配列要素の並べ替えに使用されます。要素を語彙的に並べ替えるのが非常に簡単になります。それは、辞書編集上の順序には、次のようないくつかの変形と一般化があるためです。

  • ある変形は、特定の要素を考慮する前にシーケンスの長さが比較されるため、異なる長さのシーケンスに適用できます。
  • 2 番目のバリアントは、特定の有限セットのサブセットを順序付けるために使用されます。これは、有限集合に全順序を割り当てることによって行われます。次に、サブセットを辞書編集順が適用される昇順シーケンスに変換します。
  • この一般化は、部分的に順序付けされた集合のデカルト積シーケンスを指し、そのようなシーケンスは、デカルト積の各因子が完全に順序付けされている場合に限り、全順序となります。

辞書編集上の順序の形式的概念を理解する

  • 辞書編集上の順序の正式な概念を理解するには、次のようにします。
  • それは、アルファベットとして知られ、完全に順序付けされた有限セット A から始まります。さらに、A の a と b (異なっていて同じではない任意の 2 つのシンボル) について、次のいずれかが行われることを意味します。
  • ここで、A の単語は A からの記号の有限シーケンスであり、1 つの記号を含む長さ 1 の単語、2 つの記号を含む長さ 2 の単語、長さ 3 の単語の場合は 3 などとなります。これに関しては、空のシーケンス ? も含まれます。シンボルをまったく保持していません。したがって、有限集合 A の辞書編集上の順序は次のように説明できます。
  • 同じ長さの 2 つの異なる世界について、a=a であると仮定します。1ある2…あkそしてb=b1b2…bkが与えられる。ここで、2 つの単語の順序は、最初の場所 i の記号のアルファベット順に依存します。ここで、単語の先頭から数えると 2 つの単語が変化します。つまり、条件 a が満たされます。 iはアルファベットAの順です。
  • 2 つの単語の長さが異なる場合、通常の辞書編集順序により、両方の単語の長さが同じになるまで長さの短い単語の末尾にブランクが埋め込まれ、その後単語が比較されます。

Java での辞書編集の実装

上で説明したように、辞書編集順は 2 つの文字列の比較または要素の並べ替えに使用できます。ここでは両方の方法について説明し、それぞれを実装します。

要素を辞書順に並べ替える

単語を順番に並べることは、 辞書順 またはとしても知られています 辞書の順序 。これは、辞書編集順を適用すると、単語が構成要素のアルファベットに従ってアルファベット順に並べられることを意味します。文字列配列を辞書順に並べ替えるには、次の 2 つの方法があります。

方法 1: 任意の並べ替え方法を適用する

以下は、要素を辞書順に並べ替える方法を理解できるコード例です。

 public class Main { public static void main(String[] args) { String[] name = { &apos;John&apos;,&apos;Remo&apos;,&apos;Mixy&apos;,&apos;Julie&apos;,&apos;Ronny&apos;}; int n = 5; System.out.println(&apos;Before Sorting&apos;); for(int i = 0; i <n; i++) { system.out.println(name[i]); } for(int i="0;" < n-1; ++i) for (int j="i" + 1; 0) string temp="name[i];" name[i]="name[j];" name[j]="temp;" system.out.println('
after performing lexicographical order: '); n; pre> <p> <strong>Code Explanation:</strong> </p> <p>In the above code, we have created a class Main within which the main () method is created.</p> <ul> <li>A string has been initialized, holding some values to it, and each word will get printed as per for loop.</li> <li>Then, we have implemented the main logic within another for loop with the help of which we can form the lexicographical order of the words given.</li> <li>Finally, via for loop, the arranged words are printed on the screen.</li> </ul> <p> <strong>On executing the above example code, we got the following output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java.webp" alt="Lexicographical Order Java"> <p>From the output, we can analyze that the given sequence of the words was not in alphabetical order but after applying the lexicographical order code, we can see that every word is sequenced now in alphabetical order.</p> <p> <strong>Method 2: Applying sort () function</strong> </p> <p>The sort () method is available in the Arrays class within the util package.</p> <p>Below is the example code given that will let us understand that how we can perform sorting on elements in Lexicographical order:</p> <pre> import java.io.*; import java.util.Arrays; class Main { public static void printArray(String str[]) { for (String string : str) System.out.print(string + &apos; &apos;); System.out.println(); } public static void main(String[] args) { String arr[] = {&apos;John&apos;,&apos;Harry&apos;,&apos;Emlie&apos;,&apos;Ronny&apos;,&apos;Julie&apos;,&apos;Mary&apos; }; Arrays.sort(arr,String.CASE_INSENSITIVE_ORDER); printArray(arr); } } </pre> <p> <strong>On executing the above output, we got the below-shown output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-2.webp" alt="Lexicographical Order Java"> <h3>Comparing two strings using Lexicographical order in Java</h3> <p>For comparing two strings using Lexicographical order, we have the following two methods:</p> <p> <strong>Using compareTo () method</strong> </p> <p>Let&apos;s begin one by one:</p> <p> <strong>Using compareTo () method</strong> </p> <p>Below is an example implementation by which we can compare to strings lexicographically:</p> <pre> import java.lang.*; public class StringExample { public static void main(String[] args) { String str1 = &apos;String&apos;, str2 = &apos;Comparison&apos;; int get_val = str1.compareTo(str2); if (get_val <0) { system.out.println('str1 is greater than str2'); } else if (get_val="=" 0) equal to less < pre> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a class StringExample where we have implemented the main () method.</li> <li>We have initialized two strings, i.e., str1 and str2.</li> <li>Next, using the compareTo () method, we have compared the strings str1 and str2.</li> <li>After it, if the get_val value is found less than 0, it means str1 is greater than str2.</li> <li>Else if the get_val value is equal to 0, it means both str1 and str2 strings are equal.</li> <li>Else, both the strings str1 is less than str2.</li> </ul> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-3.webp" alt="Lexicographical Order Java"> <p> <strong>By creating a user-defined function</strong> </p> <p>Below we have created a user-defined function using which we can compare two strings lexicographically. The code is as follows:</p> <pre> public class StringExample { public static void main(String[] args) { String firstString = &apos;Red&apos;; String secondString = &apos;Red&apos;; String thirdString = &apos;Green&apos;; String fourthString = &apos;Yellow&apos;; String fifthString = &apos;REdGreen&apos;; System.out.println(&apos;Comparing two strings lexicographically by user defined function&apos;); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the secondString (&apos;+secondString+&apos;) returns: &apos;); System.out.println(compareString(firstString, secondString)); System.out.print(&apos;
Compairing secondString (&apos;+secondString+&apos;) to the thirdString (&apos;+thirdString+&apos;) returns: &apos;); System.out.println(compareString(secondString, thirdString)); System.out.print(&apos;
Compairing thirdString (&apos;+thirdString+&apos;) to the fourthString (&apos;+fourthString+&apos;) returns: &apos;); System.out.println(compareString(thirdString, fourthString)); System.out.print(&apos;
Compairing fourthString (&apos;+fourthString+&apos;) to the firstString (&apos;+firstString+&apos;) returns: &apos;); System.out.println(compareString(fourthString, firstString)); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the fifthString (&apos;+fifthString+&apos;) returns: &apos;); System.out.println(compareString(firstString, fifthString)); } public static int compareString(String str, String argString) { int lim= Math.min(str.length(), argString.length()); int k=0; while(k<lim) { if(str.charat(k)!="argString.charAt(k))" return (int) str.charat(k)- argstring.charat(k); } k++; str.length() - argstring.length(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-4.webp" alt="Lexicographical Order Java"> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a Java class where we have initialized five strings.</li> <li>Next, we have compared the first string with the second string, the second to the third-string, and so on..</li> <li>For making the comparison, we have created a user-defined function compareString () whereby comparing the length and each character of the strings, and we got the results.</li> </ul> <p>Therefore, in this way, we can make use of the lexicographical order in Java for performing such tasks.</p> <hr></lim)></pre></0)></pre></n;>

上記の出力を実行すると、以下のような出力が得られました。

辞書順 Java

Java での辞書順を使用した 2 つの文字列の比較

辞書順を使用して 2 つの文字列を比較するには、次の 2 つの方法があります。

CompareTo() メソッドの使用

一つずつ始めましょう:

CompareTo() メソッドの使用

以下は、文字列を辞書順に比較できる実装例です。

 import java.lang.*; public class StringExample { public static void main(String[] args) { String str1 = &apos;String&apos;, str2 = &apos;Comparison&apos;; int get_val = str1.compareTo(str2); if (get_val <0) { system.out.println(\'str1 is greater than str2\'); } else if (get_val="=" 0) equal to less < pre> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a class StringExample where we have implemented the main () method.</li> <li>We have initialized two strings, i.e., str1 and str2.</li> <li>Next, using the compareTo () method, we have compared the strings str1 and str2.</li> <li>After it, if the get_val value is found less than 0, it means str1 is greater than str2.</li> <li>Else if the get_val value is equal to 0, it means both str1 and str2 strings are equal.</li> <li>Else, both the strings str1 is less than str2.</li> </ul> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-3.webp" alt="Lexicographical Order Java"> <p> <strong>By creating a user-defined function</strong> </p> <p>Below we have created a user-defined function using which we can compare two strings lexicographically. The code is as follows:</p> <pre> public class StringExample { public static void main(String[] args) { String firstString = &apos;Red&apos;; String secondString = &apos;Red&apos;; String thirdString = &apos;Green&apos;; String fourthString = &apos;Yellow&apos;; String fifthString = &apos;REdGreen&apos;; System.out.println(&apos;Comparing two strings lexicographically by user defined function&apos;); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the secondString (&apos;+secondString+&apos;) returns: &apos;); System.out.println(compareString(firstString, secondString)); System.out.print(&apos;
Compairing secondString (&apos;+secondString+&apos;) to the thirdString (&apos;+thirdString+&apos;) returns: &apos;); System.out.println(compareString(secondString, thirdString)); System.out.print(&apos;
Compairing thirdString (&apos;+thirdString+&apos;) to the fourthString (&apos;+fourthString+&apos;) returns: &apos;); System.out.println(compareString(thirdString, fourthString)); System.out.print(&apos;
Compairing fourthString (&apos;+fourthString+&apos;) to the firstString (&apos;+firstString+&apos;) returns: &apos;); System.out.println(compareString(fourthString, firstString)); System.out.print(&apos;
Compairing firstString (&apos;+firstString+&apos;) to the fifthString (&apos;+fifthString+&apos;) returns: &apos;); System.out.println(compareString(firstString, fifthString)); } public static int compareString(String str, String argString) { int lim= Math.min(str.length(), argString.length()); int k=0; while(k<lim) { if(str.charat(k)!="argString.charAt(k))" return (int) str.charat(k)- argstring.charat(k); } k++; str.length() - argstring.length(); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/java-tutorial/62/lexicographical-order-java-4.webp" alt="Lexicographical Order Java"> <p> <strong>Code Explanation:</strong> </p> <ul> <li>We have created a Java class where we have initialized five strings.</li> <li>Next, we have compared the first string with the second string, the second to the third-string, and so on..</li> <li>For making the comparison, we have created a user-defined function compareString () whereby comparing the length and each character of the strings, and we got the results.</li> </ul> <p>Therefore, in this way, we can make use of the lexicographical order in Java for performing such tasks.</p> <hr></lim)></pre></0)>