Erreur
% javac StringTest.Java
StringTest.Java:4: variable errorSoon might not have been initialized
errorSoon[0] = "Error, why?";
Code
public class StringTest {
public static void main(String[] args) {
String[] errorSoon;
errorSoon[0] = "Error, why?";
}
}
Vous devez initialisererrorSoon
, comme indiqué par le message d'erreur, vous n'avez que déclaré it.
String[] errorSoon; // <--declared statement
String[] errorSoon = new String[100]; // <--initialized statement
Vous devez initialiser le tableau afin qu'il puisse allouer le stockage de mémoire correct pour les String
éléments avant que vous puissiez commencer à définir l'index.
Si vous seulement déclarez le tableau (comme vous l'avez fait), aucune mémoire n'est allouée pour les éléments String
, mais uniquement un descripteur de référence à errorSoon
. Une erreur est générée lorsque vous essayez d'initialiser une variable à un index.
En remarque, vous pouvez également initialiser le tableau String
entre accolades, { }
en tant que tel,
String[] errorSoon = {"Hello", "World"};
ce qui équivaut à
String[] errorSoon = new String[2];
errorSoon[0] = "Hello";
errorSoon[1] = "World";
String[] args = new String[]{"firstarg", "secondarg", "thirdarg"};
String[] errorSoon = { "foo", "bar" };
-- ou --
String[] errorSoon = new String[2];
errorSoon[0] = "foo";
errorSoon[1] = "bar";
Je crois que vous venez de migrer du C++, vous devez bien initialiser un type de données en Java (autres que les types primitifs et String n’est pas considéré comme un type primitif en Java) pour pouvoir les utiliser conformément à leurs spécifications c'est juste comme une variable de référence vide (un peu comme un pointeur dans le contexte de 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?"};
}
}
Dans Java 8 , nous pouvons également utiliser des flux, par exemple.
String[] strings = Stream.of("First", "Second", "Third").toArray(String[]::new);
Si nous avons déjà une liste de chaînes (stringList
), alors nous pouvons collecter dans un tableau de chaînes comme:
String[] strings = stringList.stream().toArray(String[]::new);
String[] errorSoon = new String[n];
Avec n étant le nombre de chaînes à tenir.
Vous pouvez le faire dans la déclaration, ou le faire sans String [] ultérieurement, à condition que ce soit avant d'essayer de les utiliser.
Vous pouvez toujours l'écrire comme ça
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.
}
Déclaration de chaîne:
String str;
Initialisation de chaîne
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";
Nous pouvons obtenir un caractère individuel dans String:
char chr=str.charAt(0);`//output will be S`
Si je veux obtenir une valeur Ascii de caractère individuel comme ceci:
System.out.println((int)chr); //output:83
Maintenant, je veux convertir la valeur Ascii en caractères/symboles.
int n=(int)chr;
System.out.println((char)n);//output:S
String[] string=new String[60];
System.out.println(string.length);
c'est l'initialisation et l'obtention du code STRING LENGTH de manière très simple pour les débutants
Vous pouvez utiliser le code ci-dessous pour initialiser la taille et définir une valeur vide dans un tableau de chaînes.
String[] row = new String[size];
Arrays.fill(row, "");
String[] arr = {"foo", "bar"};
Si vous passez un tableau de chaînes à une méthode, faites:
myFunc(arr);
ou faire:
myFunc(new String[] {"foo", "bar"});