Java で文字列を反転させる方法
Mohammad Irfan
2023年10月12日
-
Java の
reverse()
メソッドを用いた文字列の逆引き - Java でカスタムコードを使用して文字列を反転する
-
Java の
append()
メソッドを使用して文字列を反転する - Java で再帰を使用して文字列を逆にする
-
Java で
Stack
を用いて文字列を逆引きする
このチュートリアルでは、Java で文字列を逆引きする方法と、それを理解するためのコード例を紹介します。
文字列を逆引きするには、reverse()
、sorted()
、parallelSort()
メソッドなどのように、いくつかの方法があります。例を見てみましょう。
Java の reverse()
メソッドを用いた文字列の逆引き
この例では、StringBuilder
クラスの reverse()
メソッドを使って文字列を逆順に取得し、toString()
メソッドを使って StringBuilder
オブジェクトから文字列オブジェクトを取得します。以下の例を参照してください。
public class SimpleTesting {
public static void main(String[] args) {
String str = "DelfStack";
System.out.println(str);
StringBuilder strb = new StringBuilder(str);
str = strb.reverse().toString();
System.out.println(str);
}
}
出力:
DelfStack
kcatSfleD
Java でカスタムコードを使用して文字列を反転する
組み込みのメソッドを使用したくない場合は、ループを使用して文字列の文字をスワップし、さらに文字列に変換された char 配列に収集するカスタムコードを使用します。以下の例を参照してください。
public class SimpleTesting {
public static void main(String[] args) {
String str = "DelfStack";
System.out.println(str);
char[] ch = str.toCharArray();
int begin = 0;
int end = ch.length - 1;
char temp;
while (end > begin) {
temp = ch[begin];
ch[begin] = ch[end];
ch[end] = temp;
end--;
begin++;
}
str = new String(ch);
System.out.println(str);
}
}
出力:
DelfStack
kcatSfleD
Java の append()
メソッドを使用して文字列を反転する
これは Java で文字列を反転させる別のアプローチです。ここでは、for
ループ内で charAt()
と append()
メソッドを用いて文字列を取得し、StringBuilder
オブジェクトに格納します。以下の例を参照してください。
public class SimpleTesting {
public static void main(String[] args) {
String str = "DelfStack";
System.out.println(str);
StringBuilder dest = new StringBuilder();
for (int i = (str.length() - 1); i >= 0; i--) {
dest.append(str.charAt(i));
}
System.out.println(dest);
}
}
出力:
DelfStac
kcatSfleD
Java で再帰を使用して文字列を逆にする
再帰とは、関数が基本条件に達するまで何度も何度も自分自身を呼び出すテクニックです。以下の例のように、再帰を使って文字列を反転させることができます。
public class SimpleTesting {
public static void main(String[] args) {
String str = "DelfStack";
System.out.println(str);
String reverseStr = reverseIt(str, str.length() - 1);
System.out.println(reverseStr);
}
static String reverseIt(String str, int index) {
if (index == 0) {
return str.charAt(0) + "";
}
char letter = str.charAt(index);
return letter + reverseIt(str, index - 1);
}
}
出力:
DelfStack
kcatSfleD
Java で Stack
を用いて文字列を逆引きする
文字列を逆にするには Stack
クラスを用いることができます。Stack
の push()
メソッドを使って文字をスタックに集め、pop()
メソッドを使って格納された文字を逆順に取得します。以下の例を参照してください。
import java.util.Stack;
public class SimpleTesting {
public static void main(String[] args) {
String str = "DelfStack";
System.out.println(str);
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
stack.push(str.charAt(i));
}
StringBuilder strb = new StringBuilder();
while (!stack.empty()) {
strb.append(stack.pop());
}
System.out.println(strb);
}
}
出力:
DelfStack
kcatSfleD