Language: Java

package self_question;

import java.util.ArrayList;
import java.util.Scanner;

public class MAIN {
    // ??¶?????????????????\?????????????????????????????£???
    static Scanner sc = new Scanner(System.in);
    // ??¶????§???????????´??????????????????????
    static int[][] map;
    // ??¶???????????°
    static int col;
    static int row;
    // ??¶?????°???????´???????
    static int count;

    public static void main(String[] args) {
        while (true) {
            // ??¶?????°?????\??????????????????
            row = sc.nextInt();
            col = sc.nextInt();

            // 0 0??§?????????????????\????????§??????
            if (row == 0 || col == 0) {
                break;
            }

            // ??\?????????map???????´?????????????????????????
            map = getMap();

            // -----------------------??°???????????????-------------------------
            // count????????????
            count = 2;

            while (true) {

                // ????????????1?????¶????????????????????????????????????????????°false?????????
                if (!isIsland()) {
                    break;
                }

                // ????????????????????¶?????????????????¨?????????????????????????????????
                exploreNextIsland();

                // ?¬????????????¢?????????
                count++;
            }
            for (int i = 0; i < col; i++) {
                for (int j = 0; j < row; j++) {
                    System.out.print(map[i][j]);
                }
                System.out.println();
            }
            System.out.println(count - 2);
        }
    }

    private static int[][] getMap() {
        // TODO ?????????????????????????????????????????????
        map = new int[col][row];
        for (int i = 0; i < col; i++) {
            for (int j = 0; j < row; j++) {
                map[i][j] = sc.nextInt();
            }
        }
        return map;
    }

    private static boolean isIsland() {
        // TODO ?????????????????????????????????????????????
        for (int i = 0; i < col; i++) {
            for (int j = 0; j < row; j++) {
                if (map[i][j] == 1) {
                    map[i][j] = count;
                    return true;
                }
            }
        }
        return false;
    }

    private static void exploreNextIsland() {
        // TODO ?????????????????????????????????????????????
        for (int i = 0; i < col; i++) {
            for (int j = 0; j < row; j++) {
                if (map[i][j] == count) {
                    // ??¨????????¶???0?????????????????§???????????????????????????
                    expandsIsland(i, j);
                }
            }
        }
    }

    private static void expandsIsland(int i, int j) {
        // TODO ?????????????????????????????????????????????
        int tmpj = j;
        int tmpi = i;
        // ?¨????????????¢?´¢
        for (int k = i + 1; k < col; k++) {
            if (map[k][j] == 0) {
                break;
            }
            map[k][j] = count;
        }
        for (int k = i - 1; k > 0; k--) {
            if (map[k][j] == 0) {
                break;
            }
            map[k][j] = count;
        }
        // ?¨????????????¢?´¢
        // ??????????????¢?´¢
        for (int k = j + 1; k < row; k++) {
            if (map[i][k] == 0) {
                break;
            }
            map[i][k] = count;
        }
        for (int k = j - 1; k > 0; k--) {
            if (map[i][k] == 0) {
                break;
            }
            map[i][k] = count;
        }
        // ??????????????¢?´¢
        // ?????????????????????????????¢?´¢
        while (true) {
            i++;
            j--;

            if (i == col || j == -1 || map[i][j] == 0) {
                i = tmpi;
                j = tmpj;
                break;
            }
            map[i][j] = count;
        }
        while (true) {
            i--;
            j++;
            if (i == -1 || j == row || map[i][j] == 0) {
                i = tmpi;
                j = tmpj;
                break;
            }
            map[i][j] = count;
        }
        // ?????????????????????????????¢?´¢

        // ?????????????????????????????¢?´¢
        while (true) {
            i++;
            j++;
            if (i == col || j == row || map[i][j] == 0) {
                i = tmpi;
                j = tmpj;
                break;
            }
            map[i][j] = count;
        }
        while (true) {
            i--;
            j--;
            if (i == -1 || j == -1 || map[i][j] == 0) {
                i = tmpi;
                j = tmpj;
                break;
            }
            map[i][j] = count;
        }
        // ?????????????????????????????¢?´¢
    }
}

Compiler output:
Main.java:6: error: class MAIN is public, should be declared in a file named MAIN.java
public class MAIN {
       ^
1 error