Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用toString方法将int数组转换为字符串_Java_Arrays_Tostring - Fatal编程技术网

如何在Java中使用toString方法将int数组转换为字符串

如何在Java中使用toString方法将int数组转换为字符串,java,arrays,tostring,Java,Arrays,Tostring,我正在尝试使用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**

我正在尝试使用
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的文档:

字符串表示法由数组元素列表组成,用方括号(“[]”)括起来。相邻元素由字符“,”分隔(逗号后跟空格)

应该是:

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

您需要的是
Arrays.toString(int[])
方法:

import java.util.Arrays;

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

..      

System.out.println(Arrays.toString(array));
对于每个不同的原语java类型,都有一个静态的
array.toString
helper方法;一个用于:

返回指定数组内容的字符串表示形式。字符串表示法由数组元素列表组成,用方括号括起来(
“[]”
)。相邻元素由字符
“,”
(逗号后跟空格)分隔。元素通过
String.valueOf(int)
转换为字符串。如果
a
为null,则返回
“null”


数组上的toString方法只打印出您得到的内存地址。 您必须在数组中循环并单独打印每个项目

for(int i : array) {
 System.println(i);
}
您可以使用:

输出:

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

使用我描述的实用程序,可以更好地控制数组的字符串表示

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 >"
String[]s={“你好”,“世界”};
RichIterable r=RichIterable.from(s);
r、 mkString();//给出“你好,世界”
r、 mkString(“|”);//给出“你好|世界”
r、 mkString(“<”、“,”、“>”)//给出“
此函数以字符串形式返回int数组,如“6097321041141011026”


下面是一个从字符串列表到单个字符串,再回到字符串列表的示例

汇编:

$ 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" 初步名单: “abc” “def” “ghi” “jkl” “mno” 作为单个字符串: “[abc、def、ghi、jkl、mno]” 重组名单: “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");
    }
}
import java.util.*;
公开课考试{
公共静态void main(字符串[]args){
List listofstring=new ArrayList();
添加(“abc”);
添加(“定义”);
添加(“ghi”);
添加(“jkl”);
添加(“mno”);
显示(“\n初始列表:”,listOfStrings);
String singleString=listOfStrings.toString();
显示(“作为单个字符串:”,singleString);
列表重建列表=Arrays.asList(
singleString.substring(0,singleString.length()-1)
.子字符串(1).拆分(“[\\s,]+”);
显示(“重组列表:”,重组列表);
}
公共静态void显示(字符串标题、对象操作数){
System.out.println(title+“\n”);
if(字符串的操作数实例){
System.out.println(“\”+操作数+“\”);
}否则{
for(字符串:(列表)操作数)
System.out.println(“\”+字符串+“\”);
}
System.out.println(“\n”);
}
}

非常同意@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();

从“[x,y,z]”返回数组或列表的最简单方法是什么?@nerdistcolony没有什么比数组更干净的了。尝试另一种方法-但请参阅以获得一些建议。@Sbodd-我根据数组列表提出了一个示例并发布了答案。这是针对我正在移植的应用程序需要解决的一个问题,但可能会节省一些时间。最好使用StringBuilder,而不是直接串接-出于性能原因,Nobody要求这样做。@Roberto它使用相关技术(数组方法),我提供它是为了补充使用数组转换的人的int相关答案,即使它显示字符串,因为我知道已经有int相关的解决方案。。没有理由对它投反对票并沾沾自喜。也许在这里做点好事,然后再去垃圾别人。不,你错了。第一句话阐明了目的,并且有足够的相关性。在考虑攻击其他用户之前,先贡献一些有用的东西。你只会让其他人的情况变得更糟。如何从这个输出中检索int[]数组。正则表达式真的很糟糕。。。
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 strOfInts = Arrays.toString(intArray).replaceAll("\\[|\\]|,|\\s", "");
long veryLongNumber = Long.parseLong(intStr);
String strOfInts = Arrays
            .stream(intArray)
            .mapToObj(String::valueOf)
            .reduce((a, b) -> a.concat(",").concat(b))
            .get();