- 締切済み
数値からバイト配列への変換について
すみません。JAVA初心者で困ってます。 double型の数値からバイト配列に変換するにはどうしたらよいですか。 ちなみにJAVAのAPIを見ながら考えていますが、 public class Double2Byte { private double m_double; private byte m_byte; private String strByte; private byte[] m_byteArray; public Double2Byte(double a_double) { m_double = a_double; } public void double2Byte(){ m_byte = (byte) m_double; } public void changeByte(){ strByte = Double.toString(m_double); } public void getByte(){ m_byteArray = strByte.getBytes(); } public static void main(String args[]){ Double2Byte d2b = new Double2Byte(1.23456789); d2b.double2Byte(); d2b.changeByte(); d2b.getByte(); System.out.println(d2b.m_byteArray); } } こんな感じになるのかなと考えています。 ご指導のほど、お願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
![noname#119918](https://gazo.okwave.jp/okwave/images/contents/av_nophoto_100_6.gif)
- sakusaker7
- ベストアンサー率62% (800/1280)
関連するQ&A
- キャラクタ?バイト?
下記プログラムを作成しましたが、 b1,b2の配列結果が等しくなりません。 b1の結果はキャラクタデータ(文字)のようですが、 b2の結果はバイトデータのようです。 原因は何故なのでしょうか??? b1は、String型をbyteデータに変換してbyte配列へ b2は、直接byteデータをbyte配列へ import java.io.*; public class Sample { private static final String FILE_NAME = "Output01.txt"; public static void main(String[] args) { // FileOutputStreamクラス宣言 FileOutputStream fos = null; try { fos = new FileOutputStream(FILE_NAME); byte[] b1 = "AB".getBytes(); for (int i = 0; i < b1.length; i++) { fos.write(b1[i]); } byte [] b2 = {(byte)A, (byte)B}; for (int i = 0; i < b2.length; i ++){ fos.write(b2[i]); } } catch (Exception e) { System.out.println("Exception : " + e); } finally { try { fos.close(); } catch (Exception et) { } } } }
- ベストアンサー
- Java
- インスタンスの情報表示について
Java初心者です。 例えば次のようなソースがあって、double型の変数numの情報を表示するためにtoStringをオーバーライドするとすると、どのようにすればStringを返せるのでしょうか。 public class Test { private double[] num; public Test(double a, double b, double c) { num = new double[3]; this.num[0]=a; this.num[1]=b; this.num[2]=c; } public toString() { // return "インスタンスは: "+ } public static void main(String args[]) { Test a = new Test(4.3, 5.6, 12.7); System.out.println(a.toString()); } }
- 締切済み
- Java
- java 初心者ですが・・・・
教えてください。 次のプログラムの出力は「2」になるんですがイマイチ解釈できません。 分かりやすい説明などあればご教授願います。 class NarrowingConversion{ public static void main (String[] args){ byte b; int i = 258; b = (byte)i; System.out.println(b); } } よろしくお願いいたします。
- ベストアンサー
- Java
- 配列のデータ設定方法
Java初心者です。 以下のコーディングを行いましたが Exception in thread "main" java.lang.NullPointerException at sample.org.test.test01.main(test01.java:12) になってしまいます。 コードは以下の通りです 1. package sample.org.test; public class test01 { /** * @param args */ public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ sample01[] faile = new sample01[1]; String buf = "123456"; faile[0].setDat((buf.getBytes())); sample02[] out = new sample02[1]; out[0].setFaile(faile); } } 2. package sample.org.test; public class sample01 { String car; byte[] dat; public String getCar() { return car; } public void setCar(String car) { this.car = car; } public byte[] getDat() { return dat; } public void setDat(byte[] dat) { this.dat = dat; } } 3. package sample.org.test; public class sample02 { private sample01[] faile; public sample01[] getFaile() { return faile; } public void setFaile(sample01[] faile) { this.faile = faile; } } 以上よろしくお願いします。
- ベストアンサー
- Java
- Stringオブジェクトの文字コードの変換
NewString = new String(b.getBytes("iso-8859-1"),"Shift_JIS"); でShift-Jisに変換できるとありましたが、どうも出力の 日本語部分が3Fになってしまってうまくいきません。 テスト用に以下のコードを作ってみました。 import java.io.File; import java.io.FileWriter; import java.io.BufferedWriter; import java.io.IOException; import java.io.FileOutputStream; public class Test { public static void main(String[] args) { try{ String regex_title; regex_title = "制限をしている場合"; System.out.println(getHexString(regex_title.getBytes())); System.out.println(getHexString(regex_title.getBytes("iso-8859-1"))); regex_title = "制限をしている場合"; regex_title = getUTF8(regex_title); System.out.println(getHexString(regex_title.getBytes())); System.out.println(getHexString(regex_title.getBytes("iso-8859-1"))); regex_title = "制限をしている場合"; regex_title = getShiftJIS(regex_title); System.out.println(getHexString(regex_title.getBytes())); System.out.println(getHexString(regex_title.getBytes("iso-8859-1"))); FileOutputStream fs = new FileOutputStream("./test.txt"); fs.write(regex_title.getBytes()); fs.close(); }catch(Exception ex){ } } public static String getHexString(byte[] b){ String buff=""; try{ for(int i=0;i<b.length;i++) buff += String.format("\\x%02x", b[i]); }catch(Exception ex){ } return buff; } public static String getUTF8(String b){ try { //UTF-8へ変換 return new String(b.getBytes(), "UTF-8"); } catch (Exception e) { e.printStackTrace(); return b; } } public static String getShiftJIS(String b){ try { //UTF-8へ変換 return new String(b.getBytes(),"Shift_JIS"); } catch (Exception e) { e.printStackTrace(); return b; } } // @Override } //////////////////////////////////////////////////////////// 1. System.out.println(getHexString(regex_title.getBytes("iso-8859-1"))); の部分の出力をみると3Fに変換されています。 regex_title.getBytes("iso-8859-1")の時点で3Fな事がわかります。 何故でしょうか? 私がやりたい事はStringの内部のコードをUTF8にする事です。 NewString = new String(b.getBytes("iso-8859-1"),"UTF-8"); では、出来ていないようでした。 2. また、以下のコードを実行するとtest.txt test2.txtともに 文字コードがShiftJisで出力されるのはなぜでしょうか? 変換を行わなければ内部処理形式のUnicodeで出力されるの ではないのでしょうか? regex_title = "制限をしている場合"; FileOutputStream fs = new FileOutputStream("./test.txt"); fs.write(regex_title.getBytes()); fs.close(); File file = new File("./test2.txt"); BufferedWriter bw = new BufferedWriter(new FileWriter(file)); bw.write(regex_title); bw.close(); 上はgetBytes()が変換してるのでしょうか? 下はBufferedWriterかFileWriterが変換してる? ではString内部のByteをそのまま出力するにはどうしたら・・・。
- ベストアンサー
- Java
- byte[]→String変換後の文字列が違うのはなぜ?
byte[]→String変換の処理を行っていたのですが、 使うメソッド(コンストラクタ)によって結果が違ってきます。なぜだかよくわからないのですが、どなたかご説明していただけないでしょうか。 byte[] bt; String str1 = "12345", str2; bt = str1.getBytes(); (1)str2 = new String(bt); (2)str2 = bt.toString(); (1)の方法と(2)の方法では答えが違ってきます。(1)では"12345"でしたが、(2)ではなんだか記号などまざったぐちゃぐちゃな文字列でした。 よろしくお願いいたします。
- ベストアンサー
- Java
- 参照・値渡しについて
下記プログラム(ソース1)を実行すると「1」という値が出力されます。しかし、2行目をprivate static int a;とすると「0」という値が出力されます。 オブジェクトは参照渡しで基本データ型は値渡しと思ったのですが、2行目の値をString型で行ったところ全く変更されていない値が出力されました。(ソース2) 一体どういうことでしょうか? 回答のほどよろしくお願い致します。 (ソース1) public class X{ private static int a[] = new int[1]; public static void main(String []args){ modify(a); System.out.println(a[0]); } public static void modify(int a[]){ a[0]++; } } (ソース2) public class X{ static String a = "a"; public static void main(String []args){ modify(a); System.out.println(a); } public static void modify(String a){ a = "b"; } }
- ベストアンサー
- Java
- Publicとは?
お世話になります。 class A{ private int a; private int b; public void AA( int m, int n){ if( m > 0 && n > 0) a = m; b = n; } public void show(){ System.out.println( a + " " + b); } } public class B{ public static void main(String args[]){ A x = new A(); //x.a = 10; x.b = 20;は不可 x.AA(10, 20); x.show(); } } 上記のコードで、privateフィールドにはクラス外からアクセスは出来ないのは理解できます。 が、そこでpublic付きのメンバAAなりshowなりを用いて、フィールドに値を設定しているのですが、試しにこのpublicを外した場合実行されたのですが、今回このコード上publicメンバにする理由は何かあるのでしょうか?
- ベストアンサー
- Java
- クラスの使い方が分からない
文字列を返すというクラスbを作りました。 bは引数が1つあって、引数に与えられた文字の手前に"f"を挿入した文字を返します。 結果は"fh"となることを期待しました。 期待通りになるように修正していただけませんか? public class a { public static void main (String args[]) { String g = b("h"); System.out.println("Hello World!!"); } } public class b { b(String c){ d(c); } private String d(String c) { String e = new String("f" + c); return e; } }
- 締切済み
- Java
お礼
返答ありがとうございます。 HKBさんの紹介してくれた「参考URL」を見て自分なりに勉強したいと思います。