Java: làm thế nào để khởi tạo Chuỗi []?


Câu trả lời:


332

Bạn cần khởi tạo errorSoon , như được chỉ ra bởi thông báo lỗi, bạn chỉ khai báo nó.

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

Bạn cần khởi tạo mảng để nó có thể phân bổ bộ nhớ chính xác cho các Stringphần tử trước khi bạn có thể bắt đầu thiết lập chỉ mục.

Nếu bạn chỉ khai báo mảng (như bạn đã làm) thì không có bộ nhớ được phân bổ cho các Stringphần tử, mà chỉ có một tham chiếu xử lý errorSoonvà sẽ đưa ra lỗi khi bạn cố gắng khởi tạo một biến ở bất kỳ chỉ mục nào.

Là một lưu ý phụ, bạn cũng có thể khởi tạo Stringmảng bên trong dấu ngoặc nhọn, { }như vậy,

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

tương đương với

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

8
Thật đáng tiếc khi bạn không thể sử dụng () để khởi tạo mọi Chuỗi trong mảng với giá trị mặc định. Một mảng gồm 5 chuỗi trống sẽ là = new Array [5] (""); thay vì = {"", "", "", "", ""}.
Pieter De Bie

Sử dụng một vòng lặp for.
Tom Burris

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

3
Có thể không chính xác những gì tiêu đề câu hỏi của OP gợi ý nhưng tôi đã cố gắng chuyển chuỗi của mình đến một tham số chấp nhận Chuỗi [], đây là giải pháp
kommradHomer

Bạn có thể giới thiệu String btw mới không? Chuỗi [] output = {"", "", ""}; dường như làm việc trong mã của tôi
Pieter De Bie

2
Nếu bạn đã khởi tạo mảng của mình và bạn muốn khởi tạo lại mảng đó, bạn không thể đi args = {"new","array"};Bạn sẽ phải args = new String[]{"new", "array"};
Darpan

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

-- hoặc là --

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

9

Tôi tin rằng bạn vừa di chuyển từ C ++, trong java bạn phải khởi tạo một kiểu dữ liệu (các kiểu nguyên thủy khác và String không được coi là một kiểu nguyên thủy trong java) để sử dụng chúng theo thông số kỹ thuật của chúng nếu bạn không nó giống như một biến tham chiếu trống (giống như một con trỏ trong ngữ cảnh của 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

Trong Java 8, chúng ta cũng có thể sử dụng các luồng, ví dụ

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

Trong trường hợp chúng ta đã có một danh sách các chuỗi ( stringList) thì chúng ta có thể thu thập thành mảng chuỗi như:

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

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

Với n là bao nhiêu chuỗi nó cần để giữ.

Bạn có thể làm điều đó trong khai báo hoặc thực hiện mà không cần Chuỗi [] sau này, miễn là trước khi bạn thử sử dụng chúng.


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

Nếu bạn truyền một mảng chuỗi cho một phương thức, hãy làm:

myFunc(arr);

hoặc làm:

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

1

Bạn luôn có thể viết nó như thế này

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

Khai báo chuỗi:

String str;

Khởi tạo chuỗi

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

Chúng ta có thể nhận được từng ký tự riêng lẻ trong Chuỗi:

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

Nếu tôi muốn nhận được giá trị nhân vật riêng lẻ như thế này:

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

Bây giờ tôi muốn chuyển đổi giá trị Ascii thành Charecter / Symbol.

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

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

đó là khởi tạo và nhận mã CHUINGI LENGTH theo cách rất đơn giản cho người mới bắt đầu


0

Bạn có thể sử dụng mã bên dưới để khởi tạo kích thước và đặt giá trị trống thành mảng Chuỗi

String[] row = new String[size];
Arrays.fill(row, "");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.