본문 바로가기

Android Studio

JAVA - String 값 한글자씩 표시해보기(타이핑 효과)

반응형

String str = "abcdef";

str의 값을 한 글자씩 조금의 딜레이를 주어 화면에 나오게 하려면

 

public class Test {
    public static void main(String[] args) {
        Runnable r = new Runnable() {
            @Override
            public void run() {
                String str = "abcdef";
                try {
                    for (int i = 0; i < str.length() + 1; i++) {
                        System.out.println(str.substring(0, i));
                        Thread.sleep(100);
                    }
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        };
        r.run();
    }
}

str.length()을 사용하여 str의 길이만큼 for문을 돌려줍니다.

str.substring(0, i) - str의 0번째부터 i번째까지의 문자를 화면에 표시를 해 줍니다.

Thread.sleep(100); - 0.1초의 딜레이를 가진 후 다음 문자를 출력합니다.

 

아주 간단한 예제이지만 안드로이드에서 효과음까지 추가하면 간단한 타이핑 효과를 낼 수 있겠네요.

 

Unity C#에서 코루틴을 이용해 역시 같은 효과를 낼 수 있습니다.

    IEnumerator Test() {
        string str = "abcdef";

        for (int i = 0; i < str.Length + 1; i++)
        {
            message.text = str.Substring(0, i);
            yield return new WaitForSeconds(0.15f);
        }
    }

 

결과 값은
a
ab
abc
abcd
abcde
abcdef

 

코틀린 코드도 확인해 보세요.

import java.lang.Exception
import kotlin.jvm.JvmStatic

object Test {
    @JvmStatic
    fun main(args: Array<String>) {
        val r = Runnable {
            val str = "abcdef"
            try {
                for (i in 0 until str.length + 1) {
                    println(str.substring(0, i))
                    Thread.sleep(100)
                }
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }
        r.run()
    }
}

 

 

반응형