java - 如何替换矩阵内的元素?
问题描述
我的输入元素是 0 或 1...我想用 I 替换 1,用 N 替换 0。
目前我能够读取和输出元素,如何用 I 和 N 替换和输出
System.out.println("Enter the elements of the matrix");
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
first[i][j] = in.nextInt();
// Display the elements of the matrix
System.out.println("Elements of the matrix are");
for (i = 0; i < m; i++) {
for (j = 0; j < n; j++)
System.out.print(first[i][j] + "\n");
由于我是 java 新手,任何帮助将不胜感激。谢谢!
解决方案
由于您想用字符替换数字,因此矩阵数据类型应为char
. 这是一个例子:
int m = 3, n = 3;
char[][] matrix = new char[m][n];
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
matrix[i][j] = scan.next().charAt(0);
for(int i = 0; i < matrix.length; i++)
for(int j = 0; j < matrix[i].length; j++)
if(matrix[i][j]=='1')
matrix[i][j] = 'I';
else if(matrix[i][j]=='0')
matrix[i][j] = 'N';
System.out.println(Arrays.deepToString(matrix));
样本输入/输出:
Enter the elements of the matrix
1
1
1
0
0
0
1
0
1
[[I, I, I], [N, N, N], [I, N, I]]
根据您的要求,您可以通过以下方式扫描字符,xxx xxx xxx xxx
其中 x 应为 0 或 1 并根据 m 和 n 编写:
int m = 4, n = 3;
Scanner scan = new Scanner(System.in);
System.out.println("Enter the elements of the matrix");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < m; i++) {
String inp = scan.nextLine();
while (inp.length() != n || !inp.matches("[01]+")) {
System.out.println("Warning: input must be "+n+" characters and only 1 or 0.");
inp = scan.nextLine();
}
sb.append(inp+" ");
}
String str = sb.toString().trim().replaceAll("1", "I");
str = str.replaceAll("0", "N");
System.out.println(str);
样本输入/输出:
Enter the elements of the matrix
112
Warning: input must be 3 characters and only 1 or 0.
111
000
101
010
III NNN INI NIN
推荐阅读
- java - MySQL 一对多、Java、休眠
- react-native - 从天气 api 和 setState inoto 对象数组中获取天气反应本机
- reactjs - 如何在反应中从一个组件调用函数到另一个组件
- reactjs - 加载 Webpack 时出现意外的令牌错误
- c++ - BST 中序方法引用向量显示错误:声明不兼容
- python - sqlalchemy 查询中的自定义方法
- google-cloud-platform - 谷歌云实例无法通过腻子连接 - 获取“不支持的身份验证方法可用(服务器发送:公钥)”
- aws-lambda - Lambda - 存储/传递 Redshift 连接
- .net - 如何更改 Azure 队列存储 QueueClient.CreateIfNotExists() 的默认超时?
- python - python中if else语句中的值错误