Как преобразовать массив 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");
}
}