Como converter uma matriz int para String com o método toString em Java

Eu estou usando tentando usar o toString(int[]) , mas acho que estou fazendo errado:

http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Arrays.html#toString (int [])

Meu código:

 int[] array = new int[lnr.getLineNumber() + 1]; int i = 0; System.out.println(array.toString()); 

A saída é:

 [I@23fc4bec 

Também tentei imprimir assim, mas:

 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[]) 

Eu tirei esse código de código maior e mais complexo, mas posso adicioná-lo, se necessário. Mas isso deve dar informações gerais.

Eu estou procurando saída, como na documentação do Oracle:

A representação de string consiste em uma lista dos elementos da matriz, entre colchetes (“[]”). Elementos adjacentes são separados pelos caracteres “,” (uma vírgula seguida por um espaço).

O que você quer é o Arrays.toString(int[]) :

 import java.util.Arrays; int[] array = new int[lnr.getLineNumber() + 1]; int i = 0; .. System.out.println(Arrays.toString(array)); 

Existe um método auxiliar estático Arrays.toString para cada tipo de java primitivo diferente; o para int[] diz isto :

 public static String toString(int[] a) 

Retorna uma representação de string do conteúdo da matriz especificada. A representação de string consiste em uma lista dos elementos da matriz, entre colchetes ( "[]" ). Elementos adjacentes são separados pelos caracteres ", " (uma vírgula seguida por um espaço). Elementos são convertidos em seqüências de caracteres como por String.valueOf(int) . Retorna "null" se a é nulo.

 System.out.println(array.toString()); 

deveria estar:

 System.out.println(Arrays.toString(array)); 

Você pode usar java.util.Arrays :

 String res = Arrays.toString(array); System.out.println(res); 

Saída:

 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 

Muito concordou com o @Patrik M, mas a coisa com o Arrays.toString é que ele inclui “[“ e “]” e “,” na saída. Então, eu vou simplesmente usar um regex para removê-los do outout assim

 String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", ""); 

e agora você tem uma String que pode ser analisada de volta para java.lang.Number , por exemplo,

 long veryLongNumber = Long.parseLong(intStr); 

Ou você pode usar o java 8 streams, se você odeia regex,

 String strOfInts = Arrays .stream(intArray) .mapToObj(String::valueOf) .reduce((a, b) -> a.concat(",").concat(b)) .get(); 

O método toString em uma matriz apenas imprime o endereço de memory, o qual você está obtendo. Você tem que repetir o array e imprimir cada item sozinho

 for(int i : array) { System.println(i); } 

Usando o utilitário que descrevo aqui , você pode ter mais controle sobre a representação de string que você obtém para sua matriz.

 String[] s = { "hello", "world" }; RichIterable r = RichIterable.from(s); r.mkString(); // gives "hello, world" r.mkString(" | "); // gives "hello | world" r.mkString("< ", ", ", " >"); // gives "< hello, world >" 

Esta function retorna um array de int na forma de string como “6097321041141011026”

 private String IntArrayToString(byte[] array) { String strRet=""; for(int i : array) { strRet+=Integer.toString(i); } return strRet; } 

Aqui está um exemplo de ir de uma lista de strings, para uma única string, de volta para uma lista de strings.

Compilando:

 $ javac test.java $ java test 

Corrida:

     Lista inicial:

         "abc"
         "def"
         "ghi"
         "jkl"
         "mno"

     Como uma única string:

         "[abc, def, ghi, jkl, mno]"

     Lista reconstituída:

         "abc"
         "def"
         "ghi"
         "jkl"
         "mno"

Código fonte:

 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"); } }