J'utilise en essayant d'utiliser la méthode toString(int[])
, mais je pense que je le fais mal:
http://docs.Oracle.com/javase/1.5.0/docs/api/Java/util/Arrays.html#toString (int [])
Mon code:
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
System.out.println(array.toString());
La sortie est:
[I@23fc4bec
J'ai aussi essayé d'imprimer comme ça, mais:
System.out.println(new String().toString(array)); // **error on next line**
The method toString() in the type String is not applicable for the arguments (int[])
J'ai sorti ce code d'un code plus gros et plus complexe, mais je peux l'ajouter si nécessaire. Mais cela devrait donner des informations générales.
Je recherche une sortie, comme dans la documentation d'Oracle:
La représentation sous forme de chaîne consiste en une liste d'éléments du tableau, entre crochets ("[]"). Les éléments adjacents sont séparés par les caractères "," (une virgule suivie d'un espace).
Ce que vous voulez, c'est la méthode Arrays.toString(int[])
:
import Java.util.Arrays;
int[] array = new int[lnr.getLineNumber() + 1];
int i = 0;
..
System.out.println(Arrays.toString(array));
Il existe une méthode d'assistance statique Arrays.toString
pour chaque type de primitive différente Java; celui pour int[]
dit ceci :
public static String toString(int[] a)
Retourne une représentation sous forme de chaîne du contenu du tableau spécifié. La représentation sous forme de chaîne consiste en une liste d'éléments du tableau, entre crochets (
"[]"
). Les éléments adjacents sont séparés par les caractères", "
(une virgule suivie d'un espace). Les éléments sont convertis en chaînes comme parString.valueOf(int)
. Renvoie"null"
sia
est nul.
System.out.println(array.toString());
devrait être:
System.out.println(Arrays.toString(array));
Très d'accord avec @Patrik M, mais le problème avec Arrays.toString est qu'il inclut "[" et "]" et "," = dans la sortie. Donc, je vais simplement utiliser une regex pour les enlever de la sortie comme ça
String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
et maintenant vous avez une chaîne qui peut être analysée de nouveau en Java.lang.Number
, par exemple,
long veryLongNumber = Long.parseLong(intStr);
Ou vous pouvez utiliser les flux Java 8, si vous détestez regex,
String strOfInts = Arrays
.stream(intArray)
.mapToObj(String::valueOf)
.reduce((a, b) -> a.concat(",").concat(b))
.get();
Vous pouvez utiliser Java.util.Arrays :
String res = Arrays.toString(array);
System.out.println(res);
Sortie:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
La méthode toString sur un tableau imprime uniquement l'adresse de mémoire que vous obtenez. Vous devez boucler le tableau et imprimer chaque élément seul
for(int i : array) {
System.println(i);
}
Cette fonction retourne un tableau d'int dans la forme de chaîne comme "6097321041141011026"
private String IntArrayToString(byte[] array) {
String strRet="";
for(int i : array) {
strRet+=Integer.toString(i);
}
return strRet;
}
En utilisant l'utilitaire que je décris ici , vous pouvez mieux contrôler la représentation des chaînes que vous obtenez pour votre tableau.
String[] s = { "hello", "world" };
RichIterable<String> r = RichIterable.from(s);
r.mkString(); // gives "hello, world"
r.mkString(" | "); // gives "hello | world"
r.mkString("< ", ", ", " >"); // gives "< hello, world >"
Voici un exemple de passage d'une liste de chaînes à une seule chaîne, puis à une liste de chaînes.
Compilation:
$ javac test.Java
$ Java test
Fonctionnement:
Liste initiale: "Abc" "Def" "Ghi" "Jkl" "mno" En chaîne simple: "[abc, def, ghi, jkl, mno]" Liste reconstituée: "Abc" "Def" "Ghi" "Jkl" "Mno"
Code source:
import Java.util.*;
public class test {
public static void main(String[] args) {
List<String> listOfStrings= new ArrayList<>();
listOfStrings.add("abc");
listOfStrings.add("def");
listOfStrings.add("ghi");
listOfStrings.add("jkl");
listOfStrings.add("mno");
show("\nInitial list:", listOfStrings);
String singleString = listOfStrings.toString();
show("As single string:", singleString);
List<String> reconstitutedList = Arrays.asList(
singleString.substring(0, singleString.length() - 1)
.substring(1).split("[\\s,]+"));
show("Reconstituted list:", reconstitutedList);
}
public static void show(String title, Object operand) {
System.out.println(title + "\n");
if (operand instanceof String) {
System.out.println(" \"" + operand + "\"");
} else {
for (String string : (List<String>)operand)
System.out.println(" \"" + string + "\"");
}
System.out.println("\n");
}
}