JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 全角とは

全角

日本語 全角
英語 fullwidth character
ふりがな ぜんかく
フリガナ ゼンカク

解説

横幅の広い文字
文字の種類のひとつ。英数字には2種類の文字があり、幅の狭い「半角」と、幅の広い「全角」がある。
たとえば「A」は半角であり「A」は全角である。また「1」は半角であり「1」は全角である。
 
文字の見た目は似ているが、文字コードは全く異なる。
半角英数字は「ASCII文字」と呼ばれ、米国生まれの本来の英数字であり、プログラムに使用できるのはこの半角文字だけである。
全角文字は、元々幅の広い日本語の文字に合わせて追加された文字であり、見た目が似ているだけで全く別の文字である。
 
全角文字文字リテラル及び文字列リテラル内で使用することができる。
CharacterクラスのtoLowerCase()メソッド等による大文字小文字変換や、IntegerクラスのparseInt()メソッドによる整数値変換等もえる。
全角文字識別子に使用することもできるが、通常は使用しないため使用は控えた方がいいだろう。
また、全角文字半角文字は区別される。特に「全角スペース」は「半角スペース」の代わりに使用することができないため注意すること。
 
半角文字と全角文字では、使用するバイトのサイズが異なる。
半角文字は1バイト、全角文字は2バイトを使用する。そのため、半角文字は「1バイト文字」、全角文字は「2バイト文字」とも呼ばれる。
Javacharは元々2バイトであり、半角全角問わず1文字として扱える。また、見た目としても1文字である。
 
だが、Unicode以外の文字コードに変換し、その文字コードが「1文字バイト数が文字によって異なる」場合、半角と全角では実際に使用されるバイト数が異なるという問題が発生する。
特に、ファイルデータベース等に書き込む場合、半角英数字のみを想定して領域を確保していると、全角文字を格納した際に容量を超えてしまう可能性がある。
そのため、保存対象によっては半角・全角チェックが必要となる。
 
ただし、ユーザーにとって半角・全角の違いはほとんどないということは憶えておいた方がいいだろう。
ユーザーにとって文字コードは「見えないもの」であり、半角・全角が「文字コードが異なるから別の文字」という認識は全くない。さらに、「MS UIゴシック」のようにわざと半角・全角の似ているフォントも存在する。
このような条件下では、全角が入力された際に「半角で入力してください」というエラーメッセージを納得できるユーザーは皆無であり、半角・全角変換をプログラムの側でう必要に迫られるだろう。
残念ながら半角・全角変換をメソッドJ2SEには存在しない。インターネットを探し回り、見つからない場合には自分で作るしかないだろう。

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 「A」の全角版「A」。
        char ch = 'A';
        System.out.println( ch );
        // A

        // 文字コードは全く別です。
        System.out.println( Integer.toHexString( 'A' ) );
        System.out.println( Integer.toHexString( 'A' ) );
        // 41
        // ff21
        // このように、半角の方は1バイトしか使っていませんが、
        // 全角の方は2バイト使っています。

        // 全角の場合でも大文字・小文字の変換は可能です。
        System.out.println( Character.toLowerCase( ch ) );
        // a

        // 「1」の全角版「1」。
        ch = '1';
        System.out.println( ch );
        // 1

        // 文字コードは全く別です。
        System.out.println( Integer.toHexString( '1' ) );
        System.out.println( Integer.toHexString( '1' ) );
        // 31
        // ff11

        // 全角の場合でも整数値変換は可能です。
        int i = Integer.parseInt( "" + ch );
        System.out.println( i );
        // 1

        // 識別子に使用することはできますがお勧めしません。
        String string = "あいうえお";
        System.out.println( string );
        // あいうえお

        // また、全角と半角は区別されます。
        // String string;
        // コンパイルエラー:
        // String は解決できないか、型ではありません。

        // よくやるのが、半角スペースの代わりに全角スペースを
        // 入れてしまうミスです。全角スペースは半角スペースの
        // 代わりには使用できません。
        // 見た目で分かりづらいのでぱっと見気付きません。
        // String string;
        // コンパイルエラー:
        // トークン "Invalid Character" に構文エラーがあります。正しくは "=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "++", "--" です。
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 「A」の全角版「A」。
        char ch = 'A';
        System.out.println( ch );
        // A

        // 文字コードは全く別です。
        System.out.println( Integer.toHexString( 'A' ) );
        System.out.println( Integer.toHexString( 'A' ) );
        // 41
        // ff21
        // このように、半角の方は1バイトしか使っていませんが、
        // 全角の方は2バイト使っています。

        // 全角の場合でも大文字・小文字の変換は可能です。
        System.out.println( Character.toLowerCase( ch ) );
        // a

        // 「1」の全角版「1」。
        ch = '1';
        System.out.println( ch );
        // 1

        // 文字コードは全く別です。
        System.out.println( Integer.toHexString( '1' ) );
        System.out.println( Integer.toHexString( '1' ) );
        // 31
        // ff11

        // 全角の場合でも整数値変換は可能です。
        int i = Integer.parseInt( "" + ch );
        System.out.println( i );
        // 1

        // 識別子に使用することはできますがお勧めしません。
        String string = "あいうえお";
        System.out.println( string );
        // あいうえお

        // また、全角と半角は区別されます。
        // String string;
        // コンパイルエラー:
        // String は解決できないか、型ではありません。

        // よくやるのが、半角スペースの代わりに全角スペースを
        // 入れてしまうミスです。全角スペースは半角スペースの
        // 代わりには使用できません。
        // 見た目で分かりづらいのでぱっと見気付きません。
        // String string;
        // コンパイルエラー:
        // トークン "Invalid Character" に構文エラーがあります。正しくは "=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "++", "--" です。
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2006/01/21
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。