全角半角混在の文字列操作はできますか?
下記のような全角半角混在の文字列操作はできますか?
1234512345
6文字取り出したい(全角でも半角でも1文字としたい)
結果 123451
-
全角半角混在の文字列をUnicode型の変数に入れると、6文字取り出すことが可能だと思います。
「1234512345」を、文字型とUnicode型の変数に入れた場合、
文字型をLen関数に通すと15、Unicode型をLen関数に通すと、10が返ってくるはずです。
同じ流れで、文字型をLeft関数で第二引数を6にすると12345、Unicode型をLeft関数で第二引数を6にすると123451を取得できます。 -
kitabayashiさんが言われるように、Unicode型を経由するといいですね。Unicodeには原則、全角半角の区別がありませんので(例外はありますが)。
-
ありがとうございます。
Unicode型でうまくいきました。
tandaさん
>(例外はありますが)
どのような事でしょうか?
-
ISHIJIMAさん、
Unicodeが発案された当初は、全角カナと半角カナの区別を廃止するという発想だったのですが、その後、やはり半角カナも必要だという要望が大勢を占めるようになり、半角カナ用のコード配列も追加されたといういきさつがあります。ただし、Unicode上での半角カナは1文字につき、3バイトの扱いになっています。つまり、文字の横幅が狭いという、見栄えだけの例外扱いですね。
-
tandaさん
ありがとうございました。
サインインしてコメントを残してください。
コメント
5件のコメント