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

Androidで文字列を逆順に表示する方法をわかりやすく解説

本記事では、Androidアプリ開発において、ユーザーが入力した文字列を逆順(リバース)にして画面に表示する方法を実例とともに解説します。EditTextに入力されたテキストを、ボタンのクリックをきっかけに反転させてTextViewへ出力するシンプルなサンプルです。

手順1:新規プロジェクトを作成する

まず、Android Studioを開き、「File」→「New Project」から新しいプロジェクトを作成します。プロジェクト作成時に必要な項目をすべて入力してセットアップを完了させましょう。

手順2:レイアウトファイル(activity_main.xml)を編集する

次に、res/layout/activity_main.xml に以下のコードを追加します。

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:tools = "https://schemas.android.com/tools"
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   tools:context = ".MainActivity"
   android:orientation = "vertical">
   <EditText
      android:id = "@+id/name"
      android:layout_width = "match_parent"
      android:hint = "Enter Name"
      android:layout_height = "wrap_content" />
   <LinearLayout
      android:layout_width = "wrap_content"
      android:layout_height = "wrap_content">
      <Button
         android:id = "@+id/save"
         android:text = "Save"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content" />
   </LinearLayout>
   <TextView
      android:id = "@+id/textview"
      android:layout_width = "match_parent"
      android:layout_height = "match_parent" />
</LinearLayout>

このレイアウトでは、名前を入力するためのEditText(id: name)と、実行用のButton(id: save)、結果を表示するTextView(id: textview)を縦方向に配置しています。ボタンがクリックされると、EditTextに入力された値が逆順になってTextViewに表示される仕組みです。

手順3:MainActivity.java に処理を記述する

続いて、src/MainActivity.java に以下のコードを追加します。

package com.example.andy.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.HashMap;
public class MainActivity extends AppCompatActivity {
    EditText name;
    HashMap<Character, Integer> charCountMap;
    TextView textview;
    @Override
    protected void onCreate(Bundle readdInstanceState) {
        super.onCreate(readdInstanceState);
        setContentView(R.layout.activity_main);
        name = findViewById(R.id.name);
        textview = findViewById(R.id.textview);
        charCountMap = new HashMap<>();
        findViewById(R.id.save).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!name.getText().toString().isEmpty()) {
                    StringBuffer c = new StringBuffer(name.getText().toString());
                    textview.setText(c.reverse());
                    Toast.makeText(MainActivity.this, "Inserted", Toast.LENGTH_LONG).show();
                } else {
                    name.setError("Enter NAME");
                }
            }
        });
    }
}

このコードのポイントは、StringBufferクラスのreverse()メソッドを使っている点です。JavaのStringBufferには文字列を簡単に反転できるreverse()メソッドが標準で用意されており、これを呼び出すだけで入力文字列を一瞬で逆順にできます。

処理の流れは以下の通りです。

・ボタンがクリックされるとonClick()メソッドが呼ばれる
・EditTextの入力値が空でないかチェックする
・空でなければStringBufferに変換し、reverse()で逆順にしてTextViewにセット

アプリを実行してみよう

それでは、実際にアプリを起動してみましょう。Android端末をパソコンに接続していることを確認し、Android Studioでプロジェクト内のアクティビティファイルを開いた状態で、ツールバーの「Run」アイコンをクリックします。デバイス選択画面で接続中のスマートフォンを選択すると、端末にアプリがインストールされて起動します。

Androidで文字列を逆順に表示する方法をわかりやすく解説

実行結果の確認

上記の実行結果のように、EditTextに名前などを入力してSaveボタンを押すと、入力した文字列が逆順になった状態でTextViewに表示されます。たとえば「Android」と入力すれば「diordnA」と表示されるため、reverse()メソッドが正しく動作していることが確認できます。

このように、StringBufferのreverse()メソッドを活用すれば、Androidアプリで文字列を反転させる処理を数行のコードで簡単に実装できます。StringBuilderを使っても同様の結果が得られるので、用途に応じて使い分けるとよいでしょう。

  1. AndroidでStringBuilderクラスを使う方法を実例付きで解説

    具体的な例に入る前に、まずStringBuilderクラスの基本について確認しておきましょう。StringBuilderクラスは可変(ミュータブル)な文字列を生成するためのクラスです。スレッドセーフではないため、複数のスレッドから同時にアクセス可能という特徴があります。本記事では、AndroidアプリでStringBuilderクラスを実際に使う方法を、サンプルコードとともに段階的に解説します。StringBuilderの主な特徴文字列を自由に追加・挿入・削除・変更できる(可変)Stringと異なり、操作のたびに新しいオブジェクトを生成しないため高速スレッドセーフではない(同期が必要な場合はS

  2. 【Android開発】StringBufferの使い方を徹底解説!文字列操作の基本メソッドまとめ

    はじめに:StringBufferとは?具体的なサンプルコードに入る前に、まず「StringBuffer(ストリングバッファ)」について簡単に確認しておきましょう。StringBufferクラスは、変更可能(ミュータブル)な文字列を扱うためのクラスです。JavaではStringオブジェクトは不変(イミュータブル)であるため、文字列を頻繁に連結・編集する場合には、新しいオブジェクトが都度生成されてパフォーマンスが低下します。一方、StringBufferは既存の文字列を直接書き換えられるため効率的で、さらにスレッドセーフである点も大きな特徴です。マルチスレッド環境でも安全に文字列操作が行えます。