Java: bagaimana cara menginisialisasi String []?


Jawaban:


332

Anda perlu menginisialisasi errorSoon , seperti yang ditunjukkan oleh pesan kesalahan, Anda hanya menyatakannya .

String[] errorSoon;                   // <--declared statement
String[] errorSoon = new String[100]; // <--initialized statement

Anda perlu menginisialisasi array sehingga dapat mengalokasikan penyimpanan memori yang tepat untuk Stringelemen sebelum Anda dapat mulai mengatur indeks.

Jika Anda hanya mendeklarasikan array (seperti yang Anda lakukan) tidak ada memori yang dialokasikan untuk Stringelemen, tetapi hanya menangani referensi untuk errorSoon, dan akan melempar kesalahan ketika Anda mencoba untuk menginisialisasi variabel pada indeks apa pun.

Sebagai catatan, Anda juga bisa menginisialisasi Stringarray di dalam kurung kurawal, { }seperti itu,

String[] errorSoon = {"Hello", "World"};

yang setara dengan

String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";

8
Ini adalah hal yang tidak dapat Anda gunakan () untuk membuat instance setiap String dalam array Anda dengan nilai default. Array 5 string kosong harus = new Array [5] (""); alih-alih = {"", "", "", "", ""}.
Pieter De Bie

Gunakan for for.
Tom Burris

128
String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};

3
Mungkin tidak persis seperti yang disarankan judul pertanyaan OPs tetapi saya mencoba meneruskan string saya ke parameter yang menerima String [], ini solusinya
kommradHomer

Tidak bisakah kamu meninggalkan String baru? String [] output = {"", "", ""}; tampaknya berfungsi dalam kode saya.
Pieter De Bie

2
Jika Anda sudah menginisialisasi array Anda dan Anda ingin menginisialisasi ulang, Anda tidak bisa pergi. args = {"new","array"};Anda harus args = new String[]{"new", "array"};
Darpan

26
String[] errorSoon = { "foo", "bar" };

-- atau --

String[] errorSoon = new String[2];
errorSoon[0] = "foo";
errorSoon[1] = "bar";

9

Saya percaya Anda baru saja bermigrasi dari C ++, Nah di java Anda harus menginisialisasi tipe data (selain tipe primitif dan String bukan dianggap sebagai tipe primitif di java) untuk menggunakannya sesuai dengan spesifikasi mereka jika Anda tidak melakukannya itu hanya seperti variabel referensi kosong (seperti pointer dalam konteks C ++).

public class StringTest {
    public static void main(String[] args) {
        String[] errorSoon = new String[100];
        errorSoon[0] = "Error, why?";
        //another approach would be direct initialization
        String[] errorsoon = {"Error , why?"};   
    }
}

9

Di Java 8 kita juga bisa menggunakan stream misalnya

String[] strings = Stream.of("First", "Second", "Third").toArray(String[]::new);

Jika kita sudah memiliki daftar string ( stringList) maka kita dapat mengumpulkan ke dalam array string sebagai:

String[] strings = stringList.stream().toArray(String[]::new);

7
String[] errorSoon = new String[n];

Dengan n menjadi berapa banyak string yang perlu dipegang.

Anda dapat melakukannya di deklarasi, atau melakukannya tanpa String [] di kemudian hari, selama itu sebelum Anda mencoba menggunakannya.


2
String[] arr = {"foo", "bar"};

Jika Anda meneruskan array string ke suatu metode, lakukan:

myFunc(arr);

atau lakukan:

myFunc(new String[] {"foo", "bar"});

1

Anda selalu bisa menulis seperti ini

String[] errorSoon = {"Hello","World"};

For (int x=0;x<errorSoon.length;x++) // in this way u create a for     loop that would like display the elements which are inside the array     errorSoon.oh errorSoon.length is the same as errorSoon<2 

{
   System.out.println(" "+errorSoon[x]); // this will output those two     words, at the top hello and world at the bottom of hello.  
}

0

Deklarasi String:

String str;

Inisialisasi String

String[] str=new String[3];//if we give string[2] will get Exception insted
str[0]="Tej";
str[1]="Good";
str[2]="Girl";

String str="SSN"; 

Kita bisa mendapatkan karakter individual di String:

char chr=str.charAt(0);`//output will be S`

Jika saya ingin mendapatkan nilai Ascii karakter individu seperti ini:

System.out.println((int)chr); //output:83

Sekarang saya ingin mengkonversi nilai Ascii menjadi Charecter / Symbol.

int n=(int)chr;
System.out.println((char)n);//output:S

0
String[] string=new String[60];
System.out.println(string.length);

itu adalah inisialisasi dan mendapatkan kode STRING LENGTH dengan cara yang sangat sederhana untuk pemula


0

Anda dapat menggunakan kode di bawah ini untuk menginisialisasi ukuran dan menetapkan nilai kosong ke array String

String[] row = new String[size];
Arrays.fill(row, "");
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.