2D Java数组。将负数变为零

2D Java数组。将负数变为零,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,此方法应输入一个二维整数数组(int[][]),并返回二维整数数组,其中所有负数均替换为零 例如,如果您发送它{{4,5,-6},{7,-8,9},您的方法应该返回{4,5,6},{7,8,9} public static int[][] zeroNegatives(int[][] arr) { for (int r = 0; r < arr.length; r++) { for (int c = 0; c<arr[r].length; c++)

此方法应输入一个二维整数数组
(int[][])
,并返回二维整数数组,其中所有负数均替换为零

例如,如果您发送它
{{4,5,-6},{7,-8,9}
,您的方法应该返回
{4,5,6},{7,8,9}

public static int[][] zeroNegatives(int[][] arr)
{
    for (int r = 0; r < arr.length; r++)
    {
        for (int c = 0; c<arr[r].length; c++)
        {
            if (arr[r][c] < 1)
            {
                arr[r][c]*-1;
            }
        }
    }
    return ;
}
公共静态int[][]零负(int[]]arr)
{
对于(int r=0;r对于(int c=0;c您可以使用
return arr;
返回数组,即您的数组作为参数传递给方法。

您可以使用
return arr;
返回数组,即您的数组作为参数传递给方法。

尝试:

public static int[][] zeroNegatives(int[][] arr)
{
    for (int r = 0; r < arr.length; r++) // Loop over array of arrays
    {
        for (int c = 0; c<arr[r].length; c++) // Loop over arrays
        {
            if (arr[r][c] < 0) // Check if negative
            {
                arr[r][c] *= -1; // "Change sign"
            }
        }
    }    
    return arr;
}
公共静态int[][]零负(int[]]arr)
{
for(int r=0;r
公共静态int[][]零负(int[]]arr)
{
for(int r=0;r对于(int c=0;c已测试且有效

public static int[][] zeroNegatives(int[][] arr)
{
    for (int r = 0; r < arr.length; r++)
    {
        for (int c = 0; c < arr[r].length; c++)
        {
            if (arr[r][c] < 0) // if it's negative, it's less than 0, not 1
            {
                arr[r][c] *= -1; // it will equal itself multiplied by negative 1
            }
        }
    }
    return arr;
}
公共静态int[][]零负(int[]]arr)
{
对于(int r=0;r
经过测试并正常工作

public static int[][] zeroNegatives(int[][] arr)
{
    for (int r = 0; r < arr.length; r++)
    {
        for (int c = 0; c < arr[r].length; c++)
        {
            if (arr[r][c] < 0) // if it's negative, it's less than 0, not 1
            {
                arr[r][c] *= -1; // it will equal itself multiplied by negative 1
            }
        }
    }
    return arr;
}
公共静态int[][]零负(int[]]arr)
{
对于(int r=0;r
根据描述,例如,如果您发送它{{4,5,-6},{7,-8,9},您的方法应该返回{4,5,6},{7,8,9}。

您不需要将所有负值重新设置为零,而是将其设置为绝对值

然后直接返回arr

public class Test {
public static void main(String[] args) {
    int[][] dataArray = { { 4, 5, -6 }, { 7, -8, 9 } };

    for (int[] array : zeroNegatives(dataArray)) {
        System.out.println(Arrays.toString(array));
    }
}

public static int[][] zeroNegatives(int[][] arr) {
    for (int r = 0; r < arr.length; r++) {
        for (int c = 0; c < arr[r].length; c++) {
            if (arr[r][c] < 0) {
                arr[r][c] *= -1;
            }
        }
    }

    return arr;
}
}
另外,以下代码更改不是必需的,但是当值为0时,它不会执行0*=-1,这样的操作不是必需的

在第二个循环中更改if条件

if(arr[r][c]<1)
{
arr[r][c]*=-1;
}

if(arr[r][c]<0)
{
arr[r][c]*=-1;
}

根据描述,例如,如果您发送它{{4,5,-6},{7,-8,9},您的方法应该返回{4,5,6},{7,8,9}。

您不需要将所有负值重新设置为零,而是将其设置为绝对值

然后直接返回arr

public class Test {
public static void main(String[] args) {
    int[][] dataArray = { { 4, 5, -6 }, { 7, -8, 9 } };

    for (int[] array : zeroNegatives(dataArray)) {
        System.out.println(Arrays.toString(array));
    }
}

public static int[][] zeroNegatives(int[][] arr) {
    for (int r = 0; r < arr.length; r++) {
        for (int c = 0; c < arr[r].length; c++) {
            if (arr[r][c] < 0) {
                arr[r][c] *= -1;
            }
        }
    }

    return arr;
}
}
另外,以下代码更改不是必需的,但是当值为0时,它不会执行0*=-1,这样的操作不是必需的

在第二个循环中更改if条件

if(arr[r][c]<1)
{
arr[r][c]*=-1;
}

if(arr[r][c]<0)
{
arr[r][c]*=-1;
}

或者,您可以尝试:

public static int[][] zeroNegatives(final int[][] array){
    for(int i = 0; i < array.length; i++)
        for(int j = 0; j < array[i].length; j++)
            array[i][j] = Math.abs(array[i][j]);
    return array;
}
公共静态int[][]零负(最终int[][]数组){
for(int i=0;i

Math.abs(int)
返回
n
的绝对值,即距离0的距离。

或者,您可以尝试:

public static int[][] zeroNegatives(final int[][] array){
    for(int i = 0; i < array.length; i++)
        for(int j = 0; j < array[i].length; j++)
            array[i][j] = Math.abs(array[i][j]);
    return array;
}
公共静态int[][]零负(最终int[][]数组){
for(int i=0;i

Math.abs(int)
返回
n
的绝对值,即距离0的距离。

您编写的负数应替换为零,但在您的示例中,您返回的是它们的正值。是哪个?您想要的是一个包含所有绝对值的数组。零是不同的。我假设您的意思是零负数,就像没有负数一样。但是不应该说零。你写的负数应该替换为零,但在你的示例中,你返回它们的正值。是哪一个?你想要的是一个包含所有绝对值的数组。零是不同的。我假设你的意思是零负数,就像没有负数一样。但你不应该说零。它是
int[][]
所以它对代码没有影响,但实际上测试应该是
<0
,而不是
<1
,只是为了学究。它是
int[][]
,所以它对代码没有影响,但实际上测试应该是
<0
,而不是
<1
,只是为了学究。
return arr;
public static int[][] zeroNegatives(final int[][] array){
    for(int i = 0; i < array.length; i++)
        for(int j = 0; j < array[i].length; j++)
            array[i][j] = Math.abs(array[i][j]);
    return array;
}