• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaにてシリアル通信を行っております。)

Javaでシリアル通信を行い、着信番号を取得する方法とエラーの原因

このQ&Aのポイント
  • Javaにてシリアル通信を行い、着信番号を取得する方法とエラーの原因について説明します。
  • 質問者は電話の着信番号を受信し、それに該当する会員情報をWEB画面に表示したいと考えています。
  • また、質問者はJavaのRXTXライブラリを使用してシリアル通信を行おうとしていますが、エラーが発生してしまっています。エラーの原因についても解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • thamansa
  • ベストアンサー率40% (95/232)
回答No.1

" 30 39 30 B1 35 B1 39 B8 B7 35 35 " のうち、 30 31 32 … 39 は、そのままで0~9を表す文字コードですね。 でも B1 や B8 B7 を、31、38、37に変換しないといけないので、 マスクという小技を使います。 Javaの基本的なことは分かっているとして、上記の 16進のデータから電話番号を取り出す部分はこうなります。  public static void main(String[] args) {   // 16進で" 30 39 30 B1 35 B1 39 B8 B7 35 35 " のデータ   int[] data = {0x30, 0x39, 0x30, 0xB1, 0x35, 0xB1, 0x39, 0xB8, 0xB7, 0x35, 0x35};      StringBuilder sb = new StringBuilder();   for (int x : data) {    char c = (char) (x & 0x3F); // 3Fでマスクする    sb.append(c);   }   String phoneNumber = sb.toString(); // "09015998755" になる   System.out.println(phoneNumber);  }

kensuke734
質問者

お礼

どうもありがとうございました。 大変参考になりました。

関連するQ&A