メインコンテンツへスキップ

全角半角混在の文字列操作はできますか?

コメント

5件のコメント

  • kitabayashi

    全角半角混在の文字列をUnicode型の変数に入れると、6文字取り出すことが可能だと思います。
    「1234512345」を、文字型とUnicode型の変数に入れた場合、
    文字型をLen関数に通すと15、Unicode型をLen関数に通すと、10が返ってくるはずです。

    同じ流れで、文字型をLeft関数で第二引数を6にすると12345、Unicode型をLeft関数で第二引数を6にすると123451を取得できます。

  • tanda

    kitabayashiさんが言われるように、Unicode型を経由するといいですね。Unicodeには原則、全角半角の区別がありませんので(例外はありますが)。

  • ISHIJIMA

    ありがとうございます。

    Unicode型でうまくいきました。

    tandaさん

    >(例外はありますが)

    どのような事でしょうか?

     

  • tanda

    ISHIJIMAさん、

    Unicodeが発案された当初は、全角カナと半角カナの区別を廃止するという発想だったのですが、その後、やはり半角カナも必要だという要望が大勢を占めるようになり、半角カナ用のコード配列も追加されたといういきさつがあります。ただし、Unicode上での半角カナは1文字につき、3バイトの扱いになっています。つまり、文字の横幅が狭いという、見栄えだけの例外扱いですね。

  • ISHIJIMA

    tandaさん

    ありがとうございました。

サインインしてコメントを残してください。