2016-04-30 10 views
0

アルファベットの文字配列を作成したかったのですが、toCharArray()でJavaでガベージを生成する文字列

Better way to generate array of all letters in the alphabet

この言った:char[] alphabet = "abcdefghijklmnopqrstuvwxyz".toCharArray();

は、だから私のコードで私が持っている:

public class Alphabet { 

private char[] letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray(); 

public String availableLetters(){ 

    return letters.toString(); 
    } 

} 

私は、関数availableLetters()を呼び出すと、私はこの記事を見てmain()とprintitからコンソールに、このゴミを出力します:

[[email protected]

私は間違っていますか?

+0

ガベージ(Java)のゴミを生成します。それは生産的なゴミと呼ばれています。 –

+0

申し訳ありません。私はちょうど初心者です – Deersfeet

+0

謝罪する必要はありません、それは有効な質問です。 – sbhatla

答えて

-1

を渡すことができますchar配列をStringコンストラクタまたは静的メソッドString.valueOf()に渡して、代わりにそれを返します。

5

アレイは正しいですが、正しく印刷されないという問題があります。

一度にあなたの配列の文字を印刷する場合、あなたは正しい結果になるだろう:残念ながら、Javaの標準クラスライブラリは、配列のためtoString()の意味のオーバーライドを提供していません

for (char c : letters) { 
    System.out.print("'" + c + "' "); 
} 

demo

をその言語に慣れていないプログラマーにとっては多くの問題を引き起こします。その後、

3

あなたがアレイ状にそれを印刷したい場合は、使用します。

System.out.println(Arrays.toString(letters)); 

ところで[[email protected]は本当にゴミではありません。これは、クラスがtoString()メソッドをオーバーライドしないときに出力されるものです。 Object.toString()から

は、オブジェクトの文字列表現を返します。一般に、 のtoStringメソッドは、この オブジェクトを「テキストで表す」文字列を返します。結果は簡潔で有益な表現 でなければなりません。これは人が読むのが簡単です。すべての サブクラスがこのメソッドをオーバーライドすることをお勧めします。オブジェクトクラス のtoStringメソッドは、 オブジェクトがインスタンスであるクラスの名前、アットマーク文字 '@'、およびオブジェクトのハッシュコードの符号なし の16進表現からなる文字列を返します。他の すなわち、この方法は以下の値に等しい文字列を戻します。

のgetClass()+ Integer.toHexString(ハッシュコード()) '@' のgetName()+

関連する問題