Java: String [] nasıl başlatılır?


Yanıtlar:


333

Hata mesajında ​​belirtildiği gibi başlatmanız gerekir errorSoon, yalnızca beyan etmişsinizdir.

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

Dizini, dizini ayarlamaya başlamadan önceString öğeler için doğru bellek depolama alanını ayırabilmesi için başlatmanız gerekir.

Eğer varsa sadece (senin yaptığın gibi) diziyi bildirmek için ayrılan hafıza kalmaz Stringetmek elemanları, ama sadece referans kolu errorSoonve herhangi bir dizinde bir değişkeni başlatmak çalıştığınızda bir hata verir.

Yan not olarak, Stringparantez içindeki diziyi de başlatabilirsiniz { },

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

eşdeğer

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

8
Dizinizdeki her Dizeyi varsayılan bir değerle başlatmak için () kullanamayacağınız bir pitty. 5 boş dizeden oluşan bir dizi = new Array [5] ("") olmalıdır; = {"", "", "", "", ""} yerine.
Pieter De Bie

For döngüsü kullanın.
Tom Burris

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

3
Belki tam olarak OPs soru başlığı önerdiği değil ama ben String [] kabul bir parametreye benim dize geçmeye çalışıyordu, bu çözüm
kommradHomer

Yeni String btw ile tanışamaz mısın? String [] output = {"", "", ""}; kodumda çalışıyor gibi görünüyor.
Pieter De Bie

2
Zaten dizi başlatıldı ve sen istiyorsan onu yeniden başlatmak, sen gidemezsin args = {"new","array"};Sen zorunda kalacak args = new String[]{"new", "array"};
Darpan

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

- veya -

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

9

Sadece C ++ 'dan göç ettiğine inanıyorum, Java'da bir veri türünü başlatmanız gerekiyor (diğer sonra ilkel türler ve String, java'da ilkel bir tür olarak kabul edilmez), daha sonra yapmazsanız özelliklerine göre kullanmak için tıpkı boş bir başvuru değişkeni gibi (C ++ bağlamında bir işaretçi gibi).

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

In Java 8 de akışları örneğin yararlanabilir

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

Zaten dizelerin ( stringList) bir listesine sahipsek, dize dizisine şu şekilde toplayabiliriz:

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

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

N, kaç tane dizeyi tutması gerektiğidir.

Bunu bildirimde yapabilir veya daha sonra String [] olmadan, bunları kullanmayı denemeden önce yapabilirsiniz.


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

Bir dizeye dizi yöntemini iletirseniz, şunları yapın:

myFunc(arr);

veya şunu yapın:

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

1

Her zaman böyle yazabilirsiniz

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

Dize Bildirimi:

String str;

Dize Başlatma

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"; 

Dize'de bireysel karakter elde edebiliriz:

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

Eğer böyle bireysel karakter Ascii değeri almak istiyorsanız:

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

Şimdi Ascii değerini Charecter / Symbol'e dönüştürmek istiyorum.

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

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

yeni başlayanlar için başlatma ve STRING LENGTH kodunu çok basit bir şekilde alma


0

Boyutu başlatmak ve boş değeri Dizeler dizisine ayarlamak için aşağıdaki kodu kullanabilirsiniz

String[] row = new String[size];
Arrays.fill(row, "");
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.