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