Sto usando cercando di usare il metodo toString(int[])
, ma penso di sbagliarmi:
http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString (int [])
Il mio codice:
int[] array = new int[lnr.getLineNumber() + 1]; int i = 0; System.out.println(array.toString());
L’output è:
[[email protected]
Inoltre ho provato a stampare in questo modo, ma:
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[])
Ho preso questo codice da un codice più grande e più complesso, ma posso aggiungerlo se necessario. Ma questo dovrebbe dare informazioni generali.
Sto cercando l’output, come nella documentazione di Oracle:
La rappresentazione della stringa consiste in un elenco di elementi della matrice, racchiusi tra parentesi quadre (“[]”). Gli elementi adiacenti sono separati dai caratteri “,” (una virgola seguita da uno spazio).
Quello che vuoi è il Arrays.toString(int[])
:
import java.util.Arrays; int[] array = new int[lnr.getLineNumber() + 1]; int i = 0; .. System.out.println(Arrays.toString(array));
Esiste un metodo di supporto statico Arrays.toString
per ogni tipo java primitivo diverso; quello per int[]
dice questo :
public static String toString(int[] a)
Restituisce una rappresentazione in formato stringa del contenuto dell’array specificato. La rappresentazione della stringa consiste in un elenco di elementi della matrice, racchiusi tra parentesi quadre (
"[]"
). Gli elementi adiacenti sono separati dai caratteri", "
(una virgola seguita da uno spazio). Gli elementi vengono convertiti in stringhe come daString.valueOf(int)
. Restituisce"null"
sea
è nullo.
System.out.println(array.toString());
dovrebbe essere:
System.out.println(Arrays.toString(array));
Puoi usare java.util.Arrays :
String res = Arrays.toString(array); System.out.println(res);
Produzione:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Molto d’accordo con @Patrik M, ma la cosa con Arrays.toString è che include “[“ e “]” e “,” nell’output. Quindi userò semplicemente un’espressione regolare per rimuoverli dall’output in questo modo
String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
e ora hai una stringa che può essere analizzata in java.lang.Number
, per esempio,
long veryLongNumber = Long.parseLong(intStr);
Oppure puoi usare java 8 streams, se odi regex,
String strOfInts = Arrays .stream(intArray) .mapToObj(String::valueOf) .reduce((a, b) -> a.concat(",").concat(b)) .get();
Il metodo toString su un array stampa solo l’indirizzo di memoria che stai ricevendo. Devi fare un ciclo attraverso l’array e stampare ogni elemento da solo
for(int i : array) { System.println(i); }
Usando l’utility che descrivo qui , puoi avere un maggiore controllo sulla rappresentazione della stringa che ottieni per il tuo array.
String[] s = { "hello", "world" }; RichIterable r = RichIterable.from(s); r.mkString(); // gives "hello, world" r.mkString(" | "); // gives "hello | world" r.mkString("< ", ", ", " >"); // gives "< hello, world >"
Questa funzione restituisce una matrice di int nel formato stringa come “6097321041141011026”
private String IntArrayToString(byte[] array) { String strRet=""; for(int i : array) { strRet+=Integer.toString(i); } return strRet; }
Ecco un esempio di passaggio da un elenco di stringhe a una singola stringa e ritorno a un elenco di stringhe.
compilazione:
$ javac test.java $ java test
In esecuzione:
Elenco iniziale: "Abc" "Def" "ghi" "Jkl" "MNO" Come singola stringa: "[abc, def, ghi, jkl, mno]" Lista ricostituita: "Abc" "Def" "ghi" "Jkl" "MNO"
Codice sorgente:
import java.util.*; public class test { public static void main(String[] args) { List 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 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 )operand) System.out.println(" \"" + string + "\""); } System.out.println("\n"); } }