Java
 Computer >> コンピューター >  >> プログラミング >> Java

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

文字列を逆にすることは、Javaの技術面接で最もよく聞かれる質問の1つです。インタビュアーは、文字列を逆にするさまざまな方法を書くように求めたり、組み込みのメソッドを使用せずに文字列を逆にするように求めたり、再帰を使用して文字列を逆にするように求めたりする場合があります。

以下は、Javaで文字列を逆にするために使用できるさまざまな方法です。

Javaで文字列を逆にする、最も簡単な方法

Javaで文字列を逆にする最も簡単な方法は、組み込みのreverse()を使用することです。 StringBuilderの機能 クラス。

例:

package io.devqa.tutorials;

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return new StringBuilder(inputString).reverse().toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

関連:

  • JavaでtoString()をオーバーライドする理由
  • Javaで文字列を比較する方法
  • 文字列から数値を抽出する方法
  • JavaでStringをIntに変換する方法
再帰を使用して文字列を逆にする

Javaで文字列を逆にする別の方法は、再帰を使用してcharAt()を利用することです。 Stringのメソッド クラス

例:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {

        StringBuilder reverseStringBuilder = new StringBuilder();

        for(int i = inputString.length() - 1; i>=0; i--){
            reverseStringBuilder.append(inputString.charAt(i));
        }

        return reverseStringBuilder.toString();
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

上記のバリエーションは、toCharArray()を使用することです。 たとえば、文字をループします:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        String outString = "";
        for(char c : inputString.toCharArray()) {
            outString = c + outString;
        }
        return outString;
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

Java8の文字列を逆にする

import org.junit.jupiter.api.Test;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
import static org.junit.jupiter.api.Assertions.assertEquals;

class ReverseString {

    String reverse(String inputString) {
        return IntStream.range(0, inputString.length())
            .mapToObj(x-> inputString.charAt((inputString.length()-1) - x))
            .map(character -> String.valueOf(character))
            .collect(Collectors.joining(""));
    }

    @Test
    public void testAWord() {
        assertEquals("tobor", new ReverseString().reverse("robot"));
    }
}

  1. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列

  2. Pythonで文字列を逆にする

    文字の配列があるとします。追加のスペースを使用せずに文字列を反転する必要があります。したがって、文字列が[H、E、L、L、O]のような場合、出力は[O、L、L、E、 H] これを解決するには、次の手順に従います- 2つのポインタを使用して、開始=0および終了=文字列の長さ– 1 最初と最後の文字を入れ替える 開始を1増やし、終了を1減らします 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def reverseString(self, s):       "&q