如何在Java中使用toString方法将int数组转换为String
我正在使用尝试使用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[])
我从更大更复杂的代码中取出了这些代码,但是如果需要,我可以添加它。 但是这应该给一般信息。
我正在寻找输出,就像在Oracle的文档中一样:
string表示由数组元素的列表组成,方括号(“[]”)。 相邻的元素由字符“,”(一个逗号后跟一个空格)分隔。
你想要的是Arrays.toString(int[])
方法:
import java.util.Arrays; int[] array = new int[lnr.getLineNumber() + 1]; int i = 0; .. System.out.println(Arrays.toString(array));
每个不同的原始Javatypes都有一个静态的Arrays.toString
帮助器方法; 一个int[]
说这个 :
public static String toString(int[] a)
返回指定数组内容的string表示forms。 string表示由数组元素的列表组成,方括号(
"[]"
)。 相邻的元素由字符", "
(一个逗号后跟一个空格)分隔。 元素通过String.valueOf(int)
转换为string。 如果a
为null,则返回"null"
。
System.out.println(array.toString());
应该:
System.out.println(Arrays.toString(array));
你可以使用java.util.Arrays :
String res = Arrays.toString(array); System.out.println(res);
输出:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
数组上的toString方法只打印出你得到的内存地址。 您必须循环访问数组,并自行打印每个项目
for(int i : array) { System.println(i); }
非常赞同@Patrik M,但是Arrays.toString的东西是在输出中包含“[”和“]”和“,” 。 所以我会简单地使用正则expression式来将它们从outout中移除
String strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
现在你有一个可以parsing回java.lang.Number
,例如,
long veryLongNumber = Long.parseLong(intStr);
使用我在这里描述的实用程序,您可以更好地控制数组的string表示forms。
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 >"
该函数返回stringforms的int数组,如“6097321041141011026”
private String IntArrayToString(byte[] array) { String strRet=""; for(int i : array) { strRet+=Integer.toString(i); } return strRet; }
这里是一个从string列表到单个string,回到string列表的例子。
编译:
$ javac test.java $ java test
运行:
初始名单: “ABC” “高清” “GHI” “JKL” “MNO” 作为单个string: “[abc,def,ghi,jkl,mno]” 重组列表: “ABC” “高清” “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"); } }