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?";
}
}
Réponses:
Vous devez initialiser
errorSoon
, comme indiqué par le message d'erreur, vous venez de le déclarer .Vous devez initialiser le tableau afin qu'il puisse allouer le stockage de mémoire correct pour les
String
éléments avant de pouvoir commencer à définir l'index.Si seulement vous déclarez le tableau (comme vous l'avez fait), il n'y a pas de mémoire allouée aux
String
éléments, mais uniquement un descripteur de référence àerrorSoon
, et générera une erreur lorsque vous essayez d'initialiser une variable à n'importe quel index.En remarque, vous pouvez également initialiser le
String
tableau à l'intérieur des accolades,{ }
comme tel,ce qui équivaut à
la source
la source
args = {"new","array"};
Vous devrezargs = new String[]{"new", "array"};
-- ou --
la source
Je crois que vous venez de migrer de C ++, Eh bien en java, vous devez initialiser un type de données (autres que les types primitifs et String n'est pas considéré comme un type primitif en java) pour les utiliser selon leurs spécifications si vous ne le faites pas alors c'est comme une variable de référence vide (un peu comme un pointeur dans le contexte de C ++).
la source
Dans Java 8, nous pouvons également utiliser des flux, par exemple
Dans le cas où nous avons déjà une liste de chaînes (
stringList
), nous pouvons collecter dans un tableau de chaînes comme:la source
Avec n étant le nombre de chaînes qu'il doit contenir.
Vous pouvez le faire dans la déclaration, ou le faire sans String [] plus tard, tant que c'est avant d'essayer de les utiliser.
la source
Si vous passez un tableau de chaînes à une méthode, procédez comme suit:
ou faites:
la source
Vous pouvez toujours l'écrire comme ça
la source
Déclaration de chaîne:
Initialisation de chaîne
Nous pouvons obtenir un caractère individuel dans String:
Si je veux obtenir une valeur Ascii de caractère individuel comme ceci:
Maintenant, je veux convertir la valeur Ascii en caractère / symbole.
la source
la source
Vous pouvez utiliser le code ci-dessous pour initialiser la taille et définir une valeur vide sur un tableau de chaînes
la source