题解 | #扫雷#
扫雷
https://www.nowcoder.com/practice/d5f277427d9a4cd3ae60ea6c276dddfd
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int m = in.nextInt(); String s ; int count; char[][] a = new char[n][m];//初始的雷矩阵 for (int i = 0 ; i < n ; i++) { s = in.next();//坑!样例输入为连续的一行,不能in.next().charAt(0) for (int j = 0 ; j < m ; j++) { a[i][j] = s.charAt(j); } } for (int i = 0; i < n; i++) {//遍历数组所有元素 for (int j = 0; j < m; j++) { if (a[i][j] == '*') { continue; } else {//a[i][j='.' count = 0; for (int x = i - 1; x <= i + 1; x++) {//判断当前元素的九宫格元素 if (x < 0 || x >= n) {//过滤越界行 continue; } for (int y = j - 1; y <= j + 1; y++) { if (y < 0 || y >= m) {//过滤越界列 continue; } else if (a[x][y] == '*') { count++; } } } a[i][j] = (count + "").charAt(0); } } System.out.println(a[i]);//打印一行 } } }