3

char[ ] array = new char[20]; これに関して次のように宣言されている文字配列があります。次のクエリがあります。

  • 各場所のデフォルト値は '\0000' ですか?

  • この配列に文字を追加するにはどうすればよいですか? (たとえば、ユーザーにアルファベットの入力を求めるたびに、配列内にアルファベットを順番に格納するように)

私の質問にご容赦ください。これらは C++ で簡単に実装できますが、Java は初めてです。前もって感謝します!

4

4 に答える 4

1

Java では、配列は 0 に初期化されます。

配列も固定サイズであるため、20 文字を超える文字を追加する場合は、新しい大きな配列を作成して古い値をそこにコピーするか、StringBuilder などのより適切なクラスを使用する必要があります。

于 2013-07-10T10:44:25.400 に答える
1

入力ストリームからの読み取りについて詳しく読む必要があります。ここから始めることができますが、他にもすばらしいチュートリアルがあります。

あなたの質問に正確に答えているわけではありませんが (まだあいまいであるため)、次の例では、入力から 5 文字を読み取り、並べ替えられた文字配列を出力しています。これは、開始するのに役立ちます。

public static void main(String[] args) throws IOException {

        char arr[] = new char[5];
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Enter input characters and press enter: "); 
        for(int i=0; i<arr.length; i++) {
            arr[i] = (char) br.read();
        }       
        br.close();
        Arrays.sort(arr);
            System.out.println("Sorted Array: "+String.valueOf(arr));   
    }

コンソール I/O:

入力文字を入力して Enter キーを押します:
zeros
ソート済み配列: eorsz

さらに、Rohit が既に述べたように、String クラスとその広範なユーティリティ関数を調べる必要があります。また、おそらく配列内の要素の数がわからないことにも言及しているように、それを として見たいと思うかもしれません。Listその場合は を使用する必要がありますList<Character>

于 2013-07-10T11:05:06.267 に答える
0

配列を作成すると、そのインデックスには、配列に使用する型のデフォルト値が入力されます。

したがって、 のint[]場合は値0が入力され、char[]値の場合は\u0000- null 文字が入力されます。他のタイプのデフォルト値については、JLS - 変数の初期値 を参照してください。

この配列に文字を追加するにはどうすればよいですか?

このためには、0 から始まる空の現在のインデックスを維持する必要があり、そのインデックスに要素を挿入するたびに、それを 1 増やします。

可変的に増加する配列がある場合、このプロセスは十分に実行できないことがよくあります。代わりにa の使用を検討する必要がありList<Character>ます。


補足として、ユーザーから文字列を読み取り、その文字列の各文字を文字配列に追加しようとしている場合、手動で行う必要はありません。String クラスは、String.toCharArray()String オブジェクトから文字配列を作成するメソッド - を提供します。

于 2013-07-10T10:49:47.430 に答える