0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Unityの¥n(エスケープシーケンス)って何文字扱いなの?Char型に入れるとどうなるの?

Last updated at Posted at 2021-05-26

 ノベルゲームみたいに、テキストを一文字ずつ表示する関数を作っていて、 string型の変数を使ってToCharArray()で1文字ずつにバラして、・・・と書いていたのですが、改行のエスケープシーケンス(今回は¥n)の扱いがわけわかめだったので、ちょっとだけ¥n君について調べました。
 初心者の書いた拙い文ですが、読んでもらえるとうれしいです。
#調査方法
・適当なスクリプトを書いてDebug.Log()で出力させます。
#知りたかった事
¥nは何文字?
Char型に入れるとどう格納されるの?
・¥nという文字列で出力されたりしない?
(= "¥" + "n"とみなされたりしない?)
#結果
今回使用したスクリプト↓

TextAnimate.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TextAnimate : MonoBehaviour
{
    private string str;
    void Start()
    {
        //エスケープシーケンスがどう出力されるか見たかっただけ
        Debug.Log("aaa¥nbbb");
        //こっちの変数を使って調べる
        string originstr = "aaa¥nbbbbb";
        //文字列の長さを調べる
        Debug.Log(str.Length);
        //originstrの中身を、一文字ずつ配列に入れる
        char chars[] =originstr.ToCharArray();
        //1文字追加するたびに現在の文字列を出力する
        for (int i = 0; i < 8; i++)
        {
            str += chars[i].ToString();
            Debug.Log(str);
        }
    }
}

実行結果(の写し)
(本当はスクショ貼りたかった)↓

aaa
bbb
↓
9
↓
a
↓
aa
↓
aaa
↓
aaa

↓
aaa
b
↓
aaa
bb
↓
aaa
bbb
↓
aaa
bbbb

どうやらoriginstrの最後の文字のbは出力されてないみたいですね。
#わかったこと・考察
¥n はこのひと塊で一文字分として数えられる
・だから、¥n Char型に入れるということを確信してもいいのではないか。
¥n を代入加算すると、ふつうに改行してくれる
・余計な機能書く必要なさそうだ!やったぜ!!!(個人の話)
#最後に
 二文字で一文字としてみなされるって不思議ですね。なにはともあれ、これで私は安心して制作に戻れそうです(・∀・)ヤッタゼ

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?