This is what I got.

import java.util.Scanner;

/*

* KCCMain.java

* Programming shell to start us out with at King's Coding Club

*/

public class KCCMain

{

/* Scanner.java is in the Java Class Library and you can look it up to see how to use it

* but for brevity here are some of the methods:

*

* boolean hasNext() Returns true if this scanner has another token in its input

* boolean nextBoolean() Scans next token of the input into a boolean value and returns it

* double nextDouble() Scans next token of the input into a double value and returns it

* float nextFloat() Scans next token of the input into a float value and returns it

* int nextInt() Scans next token of the input into a int value and returns it

* String nextLine() Advances the scanner past the current line and

* returns the input that was skipped

*/

Scanner input;

public KCCMain()

{

input = new Scanner(System.in);

}

// entry point for running

public static void main(String args[])

{

KCCMain program = new KCCMain();

program.run();

}

// your solutions should begin in this method

public void run()

{

// your program here

boolean finished = false;

int count = 0;

do{

int rows = input.nextInt();

int cols = input.nextInt();

input.nextLine();

System.err.println("dimensions: " + rows + " " + cols);

if (rows == 0 && cols == 0){

finished = true;

}else{

count++;

char[][] field = new char[rows][cols];

for ( int i = 0; i < rows; i++){

String character = input.nextLine();

System.err.println(character);

for (int j = 0; j < cols; j++){

field[i][j] = character.charAt(j);

}

}

//print to check

//for (int i = 0; i < field.length; i++){

// for(int j = 0; j < field[i].length; j++){

// System.out.print(field[i][j]);

//}

//System.out.println();

//}

//print the actual field w/ numbers

int numbers[][] = new int[rows][cols];

for (int i = 0; i < rows; i++){

for (int j = 0; j < cols; j++){

if(field[i][j] == '*'){

numbers[i][j] = -1;

}else{

numbers[i][j] = 0;

}

}

}

for (int i = 0; i < rows; i++){

for (int j = 0; j < cols; j++){

if(numbers[i][j] == -1){

if ((i-1 >= 0 && i-1 < rows) && (j-1 >= 0 && j-1 < cols) && numbers[i-1][j-1] != -1) {

numbers[i-1][j-1]++;

}

if ((i-1 >= 0 && i-1 < rows) && numbers[i-1][j] != -1){

numbers[i-1][j]++;

}

if ((i-1 >= 0 && i-1 < rows) && (j+1 >= 0 && j+1 < cols) && numbers[i-1][j+1] != -1){

numbers[i-1][j+1]++;

}

if ((j-1 >= 0 && j-1 < cols) && numbers[i][j-1] != -1){

numbers[i][j-1]++;

}

if ((j+1 >= 0 && j+1 < cols) && numbers[i][j+1] != -1){

numbers[i][j+1]++;

}

if ((i+1 >= 0 && i+1 < rows) && (j-1 >= 0 && j-1 < cols) && numbers[i+1][j-1] != -1){

numbers[i+1][j-1]++;

}

if ((i+1 >= 0 && i+1 < rows) && numbers[i+1][j] != -1){

numbers[i+1][j]++;

}

if ((i+1 >= 0 && i+1 < rows) && (j+1 >= 0 && j+1 < cols) && numbers[i+1][j+1] != -1){

numbers[i+1][j+1]++;

}

}

}

}

System.out.println("Field #" + count);

for (int i = 0; i < numbers.length; i++){

for(int j = 0; j < numbers[i].length; j++){

if(numbers[i][j] == -1){

System.out.print('*');

}else{

System.out.print(numbers[i][j]);

}

}

System.out.println();

}

}

}while(finished == false);

}

// You can insert more classes or methods here if you want.

}