Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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中不使用array.toString以字符串形式打印数组_Java_Arrays_String - Fatal编程技术网

在Java中不使用array.toString以字符串形式打印数组

在Java中不使用array.toString以字符串形式打印数组,java,arrays,string,Java,Arrays,String,我正在尝试使用Arrays.toString函数以字符串形式用oput打印确定的数组。我尝试了以下方法,但结果是找不到toString方法,我不知道我真正缺少了什么。我很难理解Java背后的整个思维过程,所以如果您能详细解释一下每一步的进展情况,那就太好了。提前多谢 class RandomIntArray { public static String toString(int[] a) { int[] array = {1, 2, 3, 4}; System.ou

我正在尝试使用Arrays.toString函数以字符串形式用oput打印确定的数组。我尝试了以下方法,但结果是找不到toString方法,我不知道我真正缺少了什么。我很难理解Java背后的整个思维过程,所以如果您能详细解释一下每一步的进展情况,那就太好了。提前多谢

class RandomIntArray { 
public static String toString(int[] a) {
       int[] array = {1, 2, 3, 4};
       System.out.print("[" + array[0]);
       for (int i = 1; i < array.length; i++) {
       System.out.print(", " + a[i]);
       System.out.println("]");
           }
    }
       public static void main (String[]args){
            System.out.println(toString[i]);
        }
    }
类随机数组{
公共静态字符串toString(int[]a){
int[]数组={1,2,3,4};
系统输出打印(“[”+数组[0]);
for(int i=1;i
问题
  • toString[i]
    不是方法调用(
    toString()
    is),括号
    []
    用于数组访问
  • 您误解了数组
    array
    a
  • 方法
    toString
    必须返回
    字符串
    ,但不返回任何内容,并在方法本身内部打印所有内容

解决方案
  • 初始数组必须在main中定义,并传递给方法
  • 方法
    toString
    必须构建一个
    String
    并返回它
范例

System.out.println(toString(new int[]{1, 2, 3, 4})); // [1, 2, 3, 4]
System.out.println(toString(new int[]{}));           // []
问题
  • toString[i]
    不是方法调用(
    toString()
    is),括号
    []
    用于数组访问
  • 您误解了数组
    array
    a
  • 方法
    toString
    必须返回
    字符串
    ,但不返回任何内容,并在方法本身内部打印所有内容

解决方案
  • 初始数组必须在main中定义,并传递给方法
  • 方法
    toString
    必须构建一个
    String
    并返回它
范例

System.out.println(toString(new int[]{1, 2, 3, 4})); // [1, 2, 3, 4]
System.out.println(toString(new int[]{}));           // []

使用流API的替代解决方案:

import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    public static String toString(int[] a) {
        return "[" + Arrays.stream(a).boxed().map(String::valueOf).collect(Collectors.joining(", ")) + "]";
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4 };
        System.out.println(toString(array));
    }
}
[1, 2, 3, 4]
输出:

import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    public static String toString(int[] a) {
        return "[" + Arrays.stream(a).boxed().map(String::valueOf).collect(Collectors.joining(", ")) + "]";
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4 };
        System.out.println(toString(array));
    }
}
[1, 2, 3, 4]

使用流API的替代解决方案:

import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    public static String toString(int[] a) {
        return "[" + Arrays.stream(a).boxed().map(String::valueOf).collect(Collectors.joining(", ")) + "]";
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4 };
        System.out.println(toString(array));
    }
}
[1, 2, 3, 4]
输出:

import java.util.Arrays;
import java.util.stream.Collectors;

public class Main {
    public static String toString(int[] a) {
        return "[" + Arrays.stream(a).boxed().map(String::valueOf).collect(Collectors.joining(", ")) + "]";
    }

    public static void main(String[] args) {
        int[] array = { 1, 2, 3, 4 };
        System.out.println(toString(array));
    }
}
[1, 2, 3, 4]

您误解了数组
array
a
。另外,您也不调用方法toString,而是尝试像访问数组一样访问它。您在数组之间误解了
array
a
。另外,您也不调用方法toString,而是尝试像访问数组一样访问它。添加检查1)是否为null是值得的;2) 对于包含[0]
以打印空数组的
[]
之前的数组长度:)@AlexRudenko我刚刚更改了它,一秒钟前:)非常感谢您的解释!很抱歉打扰您,但我真的很难理解Java的思考过程:关于您的解决方案,我有一个主要问题:您在开始使用“sb”时所做的是创建一个连接“[”的数组符号和给定数组的第一个参数,对吗?和for沿数组移动,直到在添加逗号时到达最后一个元素。对吗?在包含
a[0]
打印
[]之前,值得添加检查1)null;2)数组长度
对于空数组:)@AlexRudenko我刚刚更改了它,一秒钟前:)非常感谢您的解释!非常抱歉打扰您,但我真的很难理解Java的思维过程:关于您的解决方案,我有一个主要问题:您从“sb”开始做什么是否创建一个将“[”符号和给定数组的第一个参数连接在一起的数组,对吗?for将沿着数组移动,直到在添加逗号时到达最后一个元素。对吗?