文字列について
半角と全角をチェックする。
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文字の全角であると判断できる。