文字列について
半角と全角をチェックする。
public static void main(String[] args){ String str = "NetBeanでHello Worldをしてみる"; byte[] bytes = null; try{ bytes = str.getBytes("SJIS"); }catch (Exception e){ e.printStackTrace(); } if(str.length() != bytes.length){ System.out.println( bytes.length - str.length()); } }
このソースコードはサンプルです。SJISに変換できない場合、止まる可能性があります。
JAVAはUTF-8なので半角も全角も2バイトである。しかし、一旦SJISに変換(EUC-JPでもいいんだろうけど)すると、半角は1バイト、全角は2バイトになるので、全角の分だけ文字列長よりバイト配列の長さのほうが大きくなる。
ここで、バイト配列内の全角と半角を判別するには、文字コードを見ればよい。半角は(多分)ASCIIコードと同じなので、0x7F以下になるはずである。つまり、0x80以上を見つかれば、その次のバイトと合わせて1文字の全角であると判断できる。