Javaで文字列を逆にする方法は?

公開: 2023-01-06

文字列は文字列であり、Java ではオブジェクトとして扱われます。 これは、データを文字配列に格納する Java のオブジェクトです。 ひもを逆にしたものを逆ひもといいます。 たとえば、'program' 文字列の逆は 'margorP' です。

目次

Java での文字列反転の背後にあるロジック:

文字列を反転するにはさまざまな方法があり、それぞれ別の関数を使用します。 使用される方法は異なりますが、文字列の反転の背後にある基本的なプロセスはほぼ同じです。 使用される典型的なロジックは次のとおりです。

  • ユーザー入力またはコードを使用して文字列を入力します。
  • 最後の位置から始まる文字列の文字を取得し、それらを任意の変数に保存します。
  • 出力を表示します。

世界トップクラスの大学が提供するソフトウェア開発コースをオンラインで学びましょう。 エグゼクティブ PG プログラム、上級認定プログラム、または修士プログラムを取得して、キャリアを加速させましょう。

Java で文字列を逆にするさまざまな方法:

  1. StringBuffer または StringBuilder の使用
  2. 逆反復の使用
  3. charAt() メソッドの使用
  4. ArrayList オブジェクトの使用
  5. 再帰の使用
  6. 文字列をバイトに変換
  7. スタックの使用

これらの各方法について詳しく見ていきましょう。

ソフトウェア エンジニアリングに関する人気のコースと記事

人気番組
ソフトウェア開発のエグゼクティブ PG プログラム - IIIT B ブロックチェーン証明書プログラム - PURDUE サイバーセキュリティ証明書プログラム - PURDUE コンピューター サイエンスの MSC - IIIT B
その他の人気記事
米国のクラウド エンジニアの給与 2021-22 米国でのAWSソリューションアーキテクトの給与 米国のバックエンド開発者の給与 米国のフロントエンド開発者の給与
アメリカのウェブ開発者の給与 2022年のスクラムマスターインタビューの質問. 2022年にサイバーセキュリティのキャリアを始めるには? 工学部学生のための米国でのキャリアオプション

1. StringBuilder / StringBuffer による

StringBuffer または StringBuilder クラスには、文字列内の文字を逆にする組み込みメソッド reverse() があります。 文字の順序を逆順に置き換えます。 このメソッドは、 java で文字列を反転するロジックを実装する静的メソッドです

StringBuffer と StringBuilder は、文字列操作のリソース割り当てを管理する Java の 2 つのユーティリティ クラスです。

StringBuffer の使用:

StringBuffer を使用して文字列を反転する Java プログラム:

public class ExampleofReverseString{

public static void main(String[] args) {

文字列 str1 = “アップル”;

// rev 変数に逆順の文字列を格納する

文字列 rev = 新しい StringBuffer(str1).reverse().toString();

//反転前の文字列を出力します

System.out.println(“\反転前の文字列は: “+str1);

//反転後に文字列を出力します

System.out.println(“反転後の文字列: “+rev);

}

}

出力:

反転前の文字列は次のとおりです: Apple

反転後の文字列は次のとおりです: elppA

上記の例では、入力として提供される文字列は、StringBuffer を使用してバッファリングされます。 次に、reverse() メソッドを使用して逆にします。 バッファが反転された後、 toString() メソッドを使用して文字列に変換されます。

StringBuilder の使用:

StringBuilder クラスは、StringBuffer クラスと比較して非常に好まれます。 より高速で、同期されません。

StringBuilder を使用して文字列を反転する Java プログラム:

public class ExampleofReverseString{

public static void main(String[] args) {

文字列 str1 = “学校”;

//反転文字列をrev変数に格納

文字列 rev = 新しい StringBuilder(str1).reverse().toString();

//反転前の文字列を出力します

System.out.println(“\n反転前の文字列: “+str1);

//反転後に文字列を出力します

System.out.println(“反転後の文字列: “+rev);

}

}

出力:

反転前の弦:スクール

反転前の文字列:loohcS

上記のコードでは、StringBuilder クラスのオブジェクトが使用されています。 対応する StringBuilder オブジェクトは、メモリ効率が高く、変更可能で、実行が高速です。 オブジェクトは、組み込みの reverse() メソッドを呼び出して、目的の出力を提供します。

2.逆反復法による

逆反復を使用して文字列を逆にする Java プログラム:

パブリック クラス StringReversal {

public static String reverseString(String st){

char ch[]=st.toCharArray();

文字列 rev="";

for(int i=ch.length-1;i>=0;i–)

{

rev+=ch[i];

}

リビジョンを返します。

}

}

public class TestStringReversal {

public static void main(String[] args) {

System.out.println(StringReversal.reverseString(“私は先生です”));

System.out.println(StringReversal.reverseString(“英語の科目を教えています”));

}

}

出力:

私はrehcaet

hcaet hsilgnE tcejbus

上記のJava逆文字列のプログラムでは、入力文字列の文字が for ループを使用して最後の位置から rev+ 変数に格納されます。 すべての文字が格納された後、反転された文字列が出力に表示されます。

逆反復にはWhileループを使用できます。そのコードは次のとおりです。

パブリック クラス StringReversal {

public static void main(String[] args)

{

文字列 stringInput = “この文字列”;

int StrLength=stringInput.length();

while(StrLength >0)

{

System.out.print(stringInput.charAt(StrLength -1));

StrLength–;

}

}

}

出力:

ぐんと

3. charAt() メソッドの使用

そのJavaプログラムは次のとおりです。

public class ExampleofReverseString {

public static void main(String[] args) {

文字列 str = “Java を学ぶ”;

//反転文字列をrevv変数に格納

文字列 revv = "";

// 文字列の長さは len に格納されます

int len=str.length();

for(int i=len-1;i>=0;i–)

revv = revv + str.charAt(i);

//反転前の文字列を出力します

System.out.println(“\n反転操作前の文字列: “+str);

//反転後に文字列を出力します

System.out.println(“反転後の文字列: “+ revv);

}

}

出力:

反転操作前の文字列: Java を学ぶ

反転操作前の文字列: avaJ nraeL

文字列を逆にするこのJava プログラムでは、入力文字列の文字が for ループを使用して最後の位置から revv 変数に格納されます。 すべての文字が格納されると、反転された文字列が出力に反映されます。

4. ArrayList オブジェクトの使用

そのJavaプログラムは次のとおりです。

import java.util.ArrayList;

java.util.Collections をインポートします。

java.util.List をインポートします。

import java.util.ListIterator;

public class ExampleofReverseString {

public static void main(String[] args) {

String str = “コーディングを楽しむ”;

// 入力文字列を文字配列に変換します

char ch[]=str.toCharArray();

// ArrayList のオブジェクトに文字配列を追加します

List<Character> obj = new ArrayList<>();

for (char c: ch)

obj.add(c);

// ArrayList のオブジェクトをコレクションに渡す

Collections.reverse(obj);

// リスト上で繰り返す listiterator のオブジェクトを作成します

ListIterator objnew = obj.listIterator();

//反転前の文字列を出力します

System.out.println(“\n反転操作前の文字列: “+ str);

//反転後の文字列を出力します

System.out.println(“\n反転操作後の文字列: “);

while (objnew.hasNext())

System.out.print(objnew.next());

}

}

出力:

反転操作前の文字列:コーディングを楽しむ

反転操作後の文字列: gnidoc yojnE

文字列を反転するこのJava プログラムは、入力文字列の文字を ArrayList オブジェクトに格納します。 コレクション内で reverse() メソッドを使用して反転します。 イテレータはリスト全体を反復処理し、反転後に反転文字列を出力します。

5. 再帰の使用

そのJavaプログラムは次のとおりです。

public class ExampleofReverseString {

// 反転関数を定義

文字列 revs(文字列 str) {

// 文字列の長さがゼロの場合は null を返します

場合 (str. 長さ () == 0)

{

戻る " ";

}

//それ以外の場合は、次のメソッドの結果の文字を返します

return str.charAt(str.length()-1) + revs(str.substring(0,str.length()-1));

}

public static void main(String[ ] args)

{

// クラスのオブジェクトを作成します

ExampleofReverseString r = 新しい ExampleofReverseString ();

//文字列を入力

文字列 str = “Java のマスター”;

//反転前の文字列を出力します

System.out.println(“\n反転操作前の文字列: “+ str);

//反転後の文字列を出力します

System.out.println(“\n反転操作後の文字列: ” + r.revs(str));

}

出力:

反転操作前の文字列: Master in Java

反転操作後の文字列: avaJ ni retsaM

この Java プログラムでは、再帰関数が生成されます。 文字列の長さと 10 回の反転をチェックします。 java のリバース機能と同じように機能します。

6. 文字列をバイトに変換する

入力文字列をバイトに変換または分割する getBytes() メソッドを使用します。 その時点で、バイト配列の長さは入力文字列の長さと等しくなります。 次に、プログラムは逆の順序でバイトを取得し、それらを新しいバイト配列に保存します。

次のコードでは、バイト配列が一時的に生成されます。 2 バイト配列が作成されます。1 つは変換されたバイトを格納するためのもので、もう 1 つは結果を逆順で保存するためのものです。

そのJavaプログラムは次のとおりです。

public static void main(String[] arg) {

文字列入力値 = “コンピュータ”;

byte[] strByteArray = inputvalue.getBytes();

byte[] 結果 = 新しい byte[strByteArray.length];

// 結果を逆順で結果 byte[] に格納します

for (int i = 0; i < strByteArray.length; i++)

結果[i] = strByteArray [strByteArray.length – i – 1];

System.out.println( “逆演算後の文字列は:” +new String(result));

}

出力:

逆操作後の文字列は次のとおりです。retupmoC

7) スタックの使用

このメソッドには、Stack データ構造を使用して Java 文字列を逆にする次の手順が含まれます。

  1. 文字なしでスタックを作成します。
  2. String.toCharArray() メソッドを使用して、入力文字列を文字配列に変換します。 その後、各文字をスタックに追加します。

iii. 空になるまでスタックから文字を取得し、その文字を再び文字配列に割り当てます。 そのため、文字は逆の順序で到着します。

  1. 文字配列は String.copyValueOf(char[]) を使用して文字列に変換され、最終的に新しい文字列が返されます。

そのJavaプログラムは次のとおりです。

java.util.Stack をインポートします。

クラス メイン

{

public static String reverse(String str)

{

// 文字列が空か null かをチェック

if (str == null || str.equals(“”)) {

str を返します。

}

// 文字の空のスタックを生成します

Stack<Character> stack = new Stack<Character>();

// 入力文字列のすべての文字をスタックに追加します

char[] ch = str.toCharArray();

for (int i = 0; i < str.length(); i++) {

stack.push(ch[i]);

}

// インデックス 0 から開始

int m = 0;

// 空になるまでスタックから文字を取得します

while (!stack.isEmpty())

{

// 取得した各文字を文字配列に代入します

ch[m++] = stack.pop();

}

// 文字配列を文字列に変換して返す

return String.copyValueOf(ch);

}

public static void main(String[] args)

{

文字列 str = “技術革新”;

str = 逆 (str);

System.out.println(“入力文字列の逆:” + str);

}

}

出力

入力文字列の逆: ygolonhceT noitavonnI

UpGrad で Java の旅を始めましょう

Java を学びたい場合は、コア Java の概念を理解する必要があります。 そのために、コンピューター サイエンスの UpGrad の理学修士号を取得できます コア Java、OOPS の概念、Java のオブジェクトとクラス、Java のメソッド、Java 仮想マシン、ポリモーフィズム、継承、抽象化、カプセル化などのトピックをカバーしています。業界の専門家によるガイダンスが得られます。 これらの専門家は、カリキュラムと高度なトピックをカバーするインタラクティブなライブ セッションを実施します。

Javaで文字列を逆にする最も簡単な方法は何ですか?

Java で文字列を逆にする最も簡単な方法は、StringBuffer クラスを使用することです。 既存の StringBuffer オブジェクトの内容を反転し、出力 StringBuffer オブジェクトを返す reverse() と呼ばれるメソッドをサポートしています。

Javaの再帰的メソッドとは何ですか?

自分自身を呼び出すメソッドは、Java では再帰メソッドと呼ばれます。 対応するプロセスは再帰と呼ばれます。

Java での String のアプリケーションは何ですか?

Java では、文字列を使用してコードの盗用を検出できます。 それらは、送信者から受信者への安全なデータ転送のためのエンコードとデコードに使用できます。 文字列アプリケーションは、匿名データ ソースから情報を取得する際に役立ちます。 さらに、文字列とそのアルゴリズム アプリケーションは、おおよそのサフィックスとプレフィックスの重複問題を解決するための改良されたフィルターを提供します。