Java: วิธีการเริ่มต้น String []?


คำตอบ:


332

คุณต้องเริ่มต้น errorSoonตามที่ระบุโดยข้อความแสดงข้อผิดพลาดคุณได้ประกาศไว้เท่านั้น

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

คุณต้องเริ่มต้นอาร์เรย์เพื่อให้สามารถจัดสรรหน่วยความจำที่ถูกต้องสำหรับStringองค์ประกอบก่อนที่คุณจะสามารถเริ่มการตั้งค่าดัชนี

หากคุณประกาศเฉพาะอาร์เรย์ (ดังที่คุณทำ) ไม่มีหน่วยความจำที่จัดสรรให้กับStringองค์ประกอบ แต่เป็นเพียงหมายเลขอ้างอิงอ้างอิงถึงerrorSoonและจะโยนข้อผิดพลาดเมื่อคุณพยายามเริ่มต้นตัวแปรที่ดัชนีใด ๆ

คุณสามารถเริ่มต้นStringอาร์เรย์ภายในวงเล็บปีกกาได้{ }เช่นกัน

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

ซึ่งเทียบเท่ากับ

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

8
เป็นเรื่องที่ผิดที่คุณไม่สามารถใช้ () เพื่อยกตัวอย่างสตริงทั้งหมดในอาร์เรย์ของคุณด้วยค่าเริ่มต้น อาร์เรย์ของ 5 สตริงว่างควรเป็น = new Array [5] (""); แทนที่จะเป็น = {"", "", "", "", "}
Pieter De Bie

ใช้สำหรับวง
Tom Burris

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

3
อาจไม่ใช่สิ่งที่ชื่อคำถาม OPs แนะนำ แต่ฉันพยายามส่งสตริงของฉันไปยังพารามิเตอร์ที่ยอมรับ String [] นี่คือคำตอบ
kommradHomer

คุณไม่สามารถใช้ String btw ใหม่ได้หรือไม่ String [] output = {"", "", ""}; ดูเหมือนว่าจะทำงานในรหัสของฉัน
Pieter De Bie

2
หากคุณได้เริ่มต้นอาร์เรย์ของคุณแล้วและคุณต้องการเริ่มต้นใหม่คุณไม่สามารถไปได้args = {"new","array"};คุณจะต้อง args = new String[]{"new", "array"};
Darpan


9

ฉันเชื่อว่าคุณเพิ่งย้ายจาก C ++, ดีใน java คุณต้องเริ่มต้นประเภทข้อมูล (อื่น ๆ แล้วดั้งเดิมประเภทและ String ไม่ถือว่าเป็นประเภทดั้งเดิมใน java) เพื่อใช้ตามข้อกำหนดของพวกเขาหากคุณไม่แล้ว มันเหมือนกับตัวแปรอ้างอิงที่ว่างเปล่า (เหมือนกับตัวชี้ในบริบทของ 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

ในJava 8เราสามารถใช้ประโยชน์จากสตรีมเช่น

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

ในกรณีที่เรามีรายการของสตริง ( stringList) แล้วเราสามารถรวบรวมลงในอาร์เรย์สตริงเป็น:

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

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

ด้วย n เป็นจำนวนสตริงที่ต้องถือ

คุณสามารถทำได้ในการประกาศหรือทำมันโดยไม่ต้องสตริง [] ในภายหลังตราบใดที่มันก่อนที่คุณจะลองใช้พวกเขา



1

คุณสามารถเขียนแบบนี้ได้ตลอดเวลา

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

การประกาศสตริง:

String str;

การเริ่มต้นสตริง

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

เราสามารถรับตัวละครแต่ละตัวใน String:

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

ถ้าฉันต้องการรับค่า Ascii ของอักขระแต่ละตัวเช่นนี้:

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

ตอนนี้ฉันต้องการแปลงค่า Ascii เป็น Charecter / Symbol

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

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

มันเป็นการเริ่มต้นและรับรหัส STRING LENGTH ในวิธีที่ง่ายมากสำหรับผู้เริ่มต้น


0

คุณสามารถใช้โค้ดด้านล่างเพื่อกำหนดขนาดเริ่มต้นและตั้งค่าว่างเป็นอาร์เรย์ของสตริง

String[] row = new String[size];
Arrays.fill(row, "");
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.