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

Я пытаюсь использовать метод 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());

Вывод:

[[email protected]

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

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

Я выбрал этот код из более сложного и сложного кода, но при необходимости я могу добавить его. Но это должно дать общую информацию.

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

Строковое представление состоит из списка элементов массива, заключенного в квадратные скобки ( "[]" ). Смежные элементы разделяются символами "," (запятая, за которой следует пробел).

Ответ 1

Что вы хотите, это метод 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[] говорится об этом:

public static String toString(int[] a)

Возвращает строковое представление содержимого указанного массива. Строковое представление состоит из списка элементов массива, заключенного в квадратные скобки ("[]"). Смежные элементы разделяются символами ", " (запятая, за которой следует пробел). Элементы преобразуются в строки как String.valueOf(int). Возвращает "null", если a имеет значение null.

Ответ 2

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

должен быть:

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

Ответ 3

Очень согласен с @Patrik M, но с 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();

Ответ 4

Вы можете использовать java.util.Arrays:

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

Вывод:

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

Эта функция возвращает массив int в строковой форме типа "6097321041141011026"

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

Ответ 8

Вот пример перехода из списка строк в одну строку обратно в список строк.

Компиляция:

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