2017-06-20 10 views
-1
package jetPlanes; 

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
import java.io.InputStream; 
import java.nio.charset.Charset; 
import java.text.RuleBasedCollator; 

public class BoomBox { 
    public static void main(String args[]){ 
     byte[] bytes = "009343724758".getBytes(); 
     String string = new String(bytes,0,4); 
    Long long1 =new Long(string); 
    System.out.println(long1); 
    } 
} 

出力を回避する方法理由の説明を必要としています。私はバイトの生のバイナリを知っている、その理由は何ですか?私はバイトがこのように動作し、それが

私は2つの '00が私の長い間必要です。 emを取得する方法?

+0

変更先行ゼロを含むように精度。 https://stackoverflow.com/questions/4051887/how-to-format-a-java-string-with-leading-zero実際のバイナリについては、ゼロが存在します。あなたは余分なゼロがある十分に長いデータ型を持っています。 – Peri461

+0

@ Pen461あなたが提供したリンクと同じ質問をしていると思いますか?あなたがしようとしていることは、コードの中でそれが説明されているともっと役に立ちそうです。ありがとうございます。 –

+0

です。そして、その質問に対する答えとして与えられた例は、あなたが探しているものとまったく同じです。価値と表現の違いを説明したGrimyの答えを参照してください。 – Peri461

答えて

2

Longは数値を格納できます。数字のみを格納できます。この場合、番号93を格納します。0093は93とは別に存在する数値ではありません。数値的には同じことです。したがって、長い0の先頭に0を持つことはできません。先頭の0を実際に保持したい場合は、Stringを使用する必要があります。

あなたが実際に先行ゼロを格納する必要があり、ちょうどそれらを印刷する必要がない場合、あなたはこれを試みることができる:

System.out.format("%04d\n", long1); 
関連する問題