2017-06-30 8 views
-3
public class PgHS { 

    public static void main(String[] args) { 
     byte ascii[] = {65,66,67,68,69,70}; 
     String s1 = new String(ascii,2,3); 
     System.out.println(s1); 
    } 

} 

// output: CDE 

、Iは、アレイが0からnに行くように、第2 & 3位がCDの ASCII等価である6768なり、出力がCDだろうと思いました。次の文字列オブジェクトの引数は何をしますか?このコードで

しかし、出力は実際にはCDEでした。どうしてこれなの?ドキュメントから

+2

RTFM Daniel! https://docs.oracle.com/javase/7/docs/api/java/lang/String.html –

+0

@Tejas Kale:Ok。 –

答えて

3

String(byte[] bytes, int offset, int length) 

は、プラットフォームのデフォルト文字セットを使用して指定されたバイト配列を復号化することによって、新しいStringを構築します。あなたのケースでは

:それはあなたのascii入力から新しい文字列を作成し、ascii[2]で始まり、文字列の長さが3バイト長です。

あなたのプリントはCDEである必要があります。

+0

ありがとうございます –

関連する問題