Как преобразовать массив int в строку с помощью метода toString в Java [duplicate]

This question already has an answer here:

How do I print my Java object without getting “SomeType@2f92e0f4”? 10 answers

Я использую, пытаясь использоватьtoString(int[]) метод, но я думаю, что я делаю это неправильно:

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

Мой код:

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

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

Выход:

[I@23fc4bec

Также я пробовал печатать вот так, но:

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

I took this code out of bigger and more complex code, but I can add it if needed. But this should give general information.

Я ищу вывод, как в документации Oracle:

The string representation consists of a list of the array's elements, enclosed in square brackets ("[]"). Adjacent elements are separated by the characters ", " (a comma followed by a space).

Ответы на вопрос(8)

6097321041141011026 & quot;

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

рок.

Компиляция:

$ javac test.java
$ java test

Бег:

    Initial list:

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

    As single string:

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

    Reconstituted list:

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

Исходный код:

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

ВотВы можете лучше контролировать строковое представление, которое вы получаете для своего массива.

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 >"

Arrays.toString(int[]) метод:

import java.util.Arrays;

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

..      

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

Есть статикаArrays.toString вспомогательный метод для каждого примитивного типа Java; один дляint[] says this:

public static String toString(int[] a)

Returns a string representation of the contents of the specified array. The string representation consists of a list of the array's elements, enclosed in square brackets ("[]"). Adjacent elements are separated by the characters ", " (a comma followed by a space). Elements are converted to strings as by String.valueOf(int). Returns "null" if a is null.

который вы получаете. Вы должны зациклить массив и распечатать каждый элемент отдельно

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

но с Arrays.toString дело в том, что он включает"[" а также"]" а также"," на выходе. Поэтому я просто использую регулярное выражение для удаления их из outout, как это

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

и теперь у вас есть строка, которую можно проанализировать обратноjava.lang.Number, например,

long veryLongNumber = Long.parseLong(intStr);

Или вы можете использовать потоки Java 8, если вы ненавидите регулярные выражения,

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

java.util.Arrays:

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

Выход:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
System.out.println(array.toString());

должно быть:

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

ВАШ ОТВЕТ НА ВОПРОС