Java 将正负矩阵元素替换为0和1
在Java中,数组是一个对象。它是一种非原始数据类型,用于存储相似数据类型的值。在Java中,矩阵就是一个多维数组,它表示多行和多列。
这里我们有一个包含正数和负数的元素集合的矩阵,根据问题要求,我们需要将负数替换为0,将正数替换为1。
让我们深入探讨本文,了解如何使用Java编程语言来实现。
一些示例
示例1
给定矩阵 =
-21 22 -23
24 -25 26
-27 -28 29
在将负数替换为0和正数替换为1之后,
得到的矩阵为 –
0 1 0
1 0 1
0 0 1
实例-2
给定矩阵=
-9 2 -2 4
-1 -7 -2 6
2 -2 -4 3
-1 4 7 -8
将负数替换为0,将正数替换为1后,
得到的矩阵为−
0 1 0 1
0 0 0 1
1 0 0 1
0 1 1 0
实例-3
给定矩阵 =
-1 -2 -3
4 5 6
-7 8 -9
将负数替换为0,正数替换为1后,
结果矩阵如下:
0 0 0
1 1 1
0 1 0
步骤
步骤-1
- 步骤1 - 创建一个2D数组矩阵来存储数字。
-
步骤2 - 调用replaceNum方法,在矩阵中将负数替换为0,正数替换为1。
-
步骤3 - 打印结果矩阵。
-
步骤4 - 在replaceNum方法中,使用for循环迭代矩阵的行和列。
-
步骤5 - 对于矩阵中的每个元素,使用三元运算符将数字替换为0或1,取决于它是负数还是正数。
步骤-2
-
步骤1 - 创建一个2D数组矩阵来存储数字。
-
步骤2 - 调用replaceNum方法,在矩阵中将负数替换为0,正数替换为1。
-
步骤3 - 打印结果矩阵。
-
步骤4 - 在replaceNum方法中,使用for循环迭代矩阵的行和列。
-
步骤5 - 对于矩阵中的每个元素,使用Math.signum方法确定数字的符号(负数为-1,0为0,正数为1)。然后使用if-else语句将数字替换为0或1,取决于它是负数还是正数。
语法
想要获取数组的长度(数组中元素的数量),有一个内置的数组属性,即length。
以下是它的语法 –
array.length
其中,’array’ 是数组的引用。
Java中的 Math.signum() 方法是一个数学函数,返回给定double或float值的符号(负数返回-1,0返回0,正数返回1)。
下面是它的语法:
Math.signum(mat[a][b]) == -1.0)
其中,’mat’指的是给定的矩阵。
多种方法
我们提供了不同的解决方案。
- 使用三元运算符
-
使用Math.signum函数
让我们逐个看看程序和输出。
方法1:使用三元运算符
在这种方法中,程序将初始化矩阵元素。然后通过将矩阵作为参数传递给用户定义的方法,并在方法内根据算法使用三元运算符将负数替换为0,正数替换为1。
示例
public class Main {
public static void main(String[] args) {
int[][] inputMatrix = {{-1, 2, -3},
{4, -5, 6},
{7, 8, -9}};
// Call the User-defined method to replace negative and positive numbers
replacenum(inputMatrix);
// Print the resultant matrix
for (int a = 0; a < inputMatrix.length; a++) {
for (int b = 0; b < inputMatrix[a].length; b++) {
System.out.print(inputMatrix[a][b] + " ");
}
System.out.println();
}
}
// User-defined method to replace numbers
public static void replacenum(int[][] mat) {
for (int a = 0; a < mat.length; a++) {
for (int b = 0; b < mat[a].length; b++) {
// Use a ternary operator to replace the number
mat[a][b] = mat[a][b] < 0 ? 0 : 1;
}
}
}
}
输出
0 1 0
1 0 1
1 1 0
方法2:使用Math.signum函数
在这个方法中,程序将初始化矩阵元素。然后通过将矩阵作为参数传递给用户定义的方法,并根据算法使用Math.signum方法在方法内部替换负数为0,正数为1。
示例
public class Main {
public static void main(String[] args) {
int[][] inputMatrix = {{-1, -2, 3},
{4, -5, -6},
{7, 8, 9}};
// Call the User-defined method to replace negative and positive numbers
replaceNum(inputMatrix);
// Print the resultant matrix
for (int a = 0; a < inputMatrix.length; a++) {
for (int b = 0; b < inputMatrix[a].length; b++) {
System.out.print(inputMatrix[a][b] + " ");
}
System.out.println();
}
}
// User-defined method to replace numbers
public static void replaceNum(int[][] mat) {
for (int a = 0; a < mat.length; a++) {
for (int b = 0; b < mat[a].length; b++) {
// Use an if-else statement with Math.signum method to replace the number
if (Math.signum(mat[a][b]) == -1.0) {
mat[a][b] = 0;
} else {
mat[a][b] = 1;
}
}
}
}
}
输出
0 0 1
1 0 0
1 1 1
在本文中,我们使用Java编程语言探索了在矩阵中用0替换负数和用1替换正数的不同方法。