이 튜토리얼에서는 안드로이드 앱에서 문자열을 역순으로 변환하는 방법을 배워봅니다. 사용자가 EditText에 이름을 입력하고 버튼을 누르면, 입력값이 거꾸로 뒤집혀 화면에 출력되는 간단한 예제를 통해 StringBuffer의 reverse() 메서드 활용법을 단계별로 살펴보겠습니다.
1단계: 새 프로젝트 생성
Android Studio를 실행한 뒤, 상단 메뉴에서 File → New Project로 이동하여 새 프로젝트 생성에 필요한 정보를 모두 입력합니다.
2단계: 레이아웃 파일 작성
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, 둘째, 클릭 이벤트를 처리할 Button, 셋째, 결과를 표시할 TextView입니다. 사용자가 버튼을 클릭하면 EditText에 입력된 값이 역순으로 변환되어 TextView에 출력됩니다.
3단계: MainActivity 코드 작성
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 클래스입니다. 먼저 입력 필드가 비어 있는지 검사한 후, 입력값을 StringBuffer 객체로 감싸고 내장된 reverse() 메서드를 호출하면 문자열이 손쉽게 뒤집힙니다. 결과는 setText()를 통해 TextView에 표시되며, 성공적으로 처리되면 "Inserted"라는 토스트 메시지가 나타납니다. 만약 입력값이 비어 있다면 setError()를 호출해 사용자에게 이름을 입력하도록 안내합니다.
참고: StringBuilder도 동일하게 reverse() 메서드를 제공하지만, 멀티스레드 환경에서 안전한 StringBuffer를 사용하는 것이 좋습니다. 반면 단일 스레드 환경이라면 성능이 더 좋은 StringBuilder를 선택할 수 있습니다.
앱 실행 및 결과 확인
이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기가 컴퓨터에 연결되어 있다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 연 뒤, 툴바의 Run(실행) 아이콘을 클릭하세요. 목록에서 본인의 모바일 기기를 선택하면 앱이 설치되어 실행됩니다.

위 실행 결과에서 확인할 수 있듯이, 사용자가 이름을 입력하면 TextView에 해당 문자열이 거꾸로 뒤집힌 형태로 출력됩니다. 이처럼 StringBuffer의 reverse() 메서드만 활용하면 별도의 반복문 없이도 문자열 역순 변환이 매우 간단하게 구현됩니다.