ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

Java&JavaScriptで全角数字を半角数字にするプログラム

最初Javaに書いて、あとからJavaScriptも書いた。

Java

  public static String hullToHalfNumber(String s) {
    StringBuilder sb = new StringBuilder(s);
    for (int i = 0; i < sb.length(); i++) {
      int c = (int) sb.charAt(i);
      if (c >= 0xFF10 && c <= 0xFF19) {
        sb.setCharAt(i, (char) (c - 0xFEE0));
      }
    }
    return sb.toString();
  }

JavaScript

// 全角を半角へ変更
var string = "01234";
var halfString = string.replace(/[0-9]/g, function(s) {
    return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
});
// 01234
console.log(halString);

どっちのコードにもある「0xFEE0」って何?

文字コードを16進数にし、この値をプラスすると「全角」になり、マイナスすると「半角」となる。面白いね!