Java: как инициализировать String []?
Ошибка
% javac StringTest.java
StringTest.java:4: variable errorSoon might not have been initialized
errorSoon[0] = "Error, why?";
код
public class StringTest {
public static void main(String[] args) {
String[] errorSoon;
errorSoon[0] = "Error, why?";
}
}
Ответы
Ответ 1
Вам нужно инициализировать 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";
Ответ 2
String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};
Ответ 3
String[] errorSoon = { "foo", "bar" };
- или -
String[] errorSoon = new String[2];
errorSoon[0] = "foo";
errorSoon[1] = "bar";
Ответ 4
Я считаю, что вы просто перешли из С++. Ну, в java вам нужно инициализировать тип данных (другие, тогда примитивные типы и String не рассматриваются как примитивный тип в java), чтобы использовать их в соответствии со своими спецификациями, если вы 't тогда это точно как пустая ссылочная переменная (очень похожая на указатель в контексте С++).
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?"};
}
}
Ответ 5
String[] errorSoon = new String[n];
С n количеством строк, которые нужно удерживать.
Вы можете сделать это в объявлении или сделать это без String [] позже, до тех пор, пока вы не попытаетесь их использовать.
Ответ 6
В Java 8 мы также можем использовать потоки, например.
String[] strings = Stream.of("First", "Second", "Third").toArray(String[]::new);
Если у нас уже есть список строк (stringList
), мы можем собрать в строковый массив как:
String[] strings = stringList.stream().toArray(String[]::new);
Ответ 7
Вы всегда можете написать это как
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.
}
Ответ 8
Объявление строки:
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
Ответ 9
String[] string=new String[60];
System.out.println(string.length);
это инициализация и получение кода STRING LENGTH очень простым способом для новичков
Ответ 10
Вы можете использовать приведенный ниже код для инициализации размера и установки пустого значения в массив строк
String[] row = new String[size];
Arrays.fill(row, "");
Ответ 11
String[] arr = {"foo", "bar"};
Если вы передаете строковый массив методу, выполните:
myFunc(arr);
или сделать:
myFunc(new String[] {"foo", "bar"});