Код, в котором я использую StringBuilder (пример:builder.append, builder.replace), выдает ошибку компиляции. Все остальное в порядке

#java #stringbuilder

#java #stringbuilder

Вопрос:

Я пытаюсь написать «решатель» судоку, и netbeans выдает мне 3 сообщения об ошибках, связанных со StringBuilder. У меня были разные файлы для каждого класса, но тогда он тоже не компилировался. Каждый сайт, который я посетил, подсказал, как я это делаю. Пожалуйста, помогите.

 public class Sudoku {
    public static void main(String[] args) {
        int[][] mainpuzzle =
             {{5, 3, 0, 0, 7, 0, 0, 0, 0},
              {6, 0, 0, 1, 9, 5, 0, 0, 0},
              {0, 9, 8, 0, 0, 0, 0, 6, 0},
              {8, 0, 0, 0, 6, 0, 0, 0, 3},
              {4, 0, 0, 8, 0, 3, 0, 0, 1},
              {7, 0, 0, 0, 2, 0, 0, 0, 6},
              {0, 6, 0, 0, 0, 0, 2, 8, 0},
              {0, 0, 0, 4, 1, 9, 0, 0, 5},
              {0, 0, 0, 0, 8, 0, 0, 7, 9}};        
        StringBuilder builder = new StringBuilder();  
        for (int i = 0; i < 81; i  ) {
            builder.append("09123456789");        // 11 
        }
        for (int j = 0;j < 9; j   ) {
            for ( int k = 0;k < 9;k   ) {
               if ( mainpuzzle [j][k] != 0 ) {
                 String replace1 = String.valueOf(mainpuzzle[j][k]); 
                 builder.replace((j*11)   (k*11), (j*11)   (k*11), 
                                                        replace1);
               }
            }
        }
        GetSquareCandidates getSqCandid = new GetSquareCandidates();
        StringBuilder builderMarkup = new StringBuilder();
        builderMarkup = getSqCandid(builder);

     }
}  

class GetSquareCandidates {
   public StringBuilder GetSquareCandidates(StringBuilder boxPassed) 
       StringBuilder boxRet = new StringBuilder();
       boxRet = boxPassed;

       return boxRet;
    }

}
 

Комментарии:

1. А ошибки есть?

2. Нам нужно увидеть ошибки компилятора, чтобы помочь вам их решить. Кроме того, ошибки должны указывать, в какой строке возникла проблема. Пожалуйста, укажите это в вашем исходном коде.

3. Я подозреваю, что вы делаете не то, что думаете, что делаете здесь: builder.replace((j*11) (k*11), (j*11) (k*11), replace1);

4. Мне было интересно узнать о математике этой строки.

Ответ №1:

Глядя на ваш код, не хватает нескольких вещей, как показано ниже

  1. GetSquareCandidates GetSquareCandidates метод класса не имеет открытой фигурной скобки.
  2. getSqCandid(StringBuilder builder) метод не определен в вашем GetSquareCandidates классе.

Кроме этого, пожалуйста, поделитесь сообщениями об ошибках компиляции.

Комментарии:

1. Netbeans подчеркнул добавление и замену для builder, а также getSqCandid(builder).

2. Он говорит «не удается найти символ».

Ответ №2:

Есть только несколько ошибок, которые вы можете найти ниже:

  • Случай 1.Если public StringBuilder GetSquareCandidates(StringBuilder boxPassed) это a constructor , то это невозможно return .
  • Случай 2.Если это метод, пожалуйста, внесите следующие изменения:
    • Вызовите метод с помощью builderMarkup = getSqCandid.GetSquareCandidates(builder);
    • Добавить { после public StringBuilder GetSquareCandidates(StringBuilder boxPassed) .

Рекомендуется использовать имя метода like getSquareCandidates() .