Как работает этот фрагмент Java?

Я изучаю Java как новичок, но я не понял этот сценарий.

У меня есть назначение "посмотри и скажи".
Может кто-нибудь сказать мне, как это работает?

public class App {

  public static void main(String[] args) {

    for (int k = 0, len = args.length; k < len; k++) {

      int i, j;


      StringBuilder preNumber = new StringBuilder("1");     // what is the use of StringBuilder?
      StringBuilder AnsNumber = new StringBuilder();

      int n = Integer.parseInt(args[k]);

      for (i = 1; i <= n; i++) {

        AnsNumber = preNumber;
        int l = preNumber.length(), cnt = 1;
        StringBuilder nxtNumber = new StringBuilder();

        for (j = 1; j < l; j++) {

          char ch = preNumber.charAt(j);

          if (preNumber.charAt(j - 1) == preNumber.charAt(j))   // what does charAt(j) means?
          {
            cnt++;
          } 
          else 
          {
            nxtNumber.append(cnt);
            //why '+' isnot using as concatination?

            nxtNumber.append(preNumber.charAt(j - 1));
            cnt = 1;
          }

          // System.out.println(nxtNumber);
        }

        nxtNumber.append(cnt);
        nxtNumber.append(preNumber.charAt(j - 1));
        preNumber = nxtNumber;
      }
      System.out.println(AnsNumber);
    }
  }
}

1 ответ

Решение

Вы можете легко получить свои ответы, если вы посмотрите на Java Doc.

  • Класс StringBuilder используется для создания изменяемых строк. Он работает намного лучше, чем обычный класс String (который является неизменным). Причина здесь: в чем разница между изменяемой и неизменной строкой в ​​Java
  • charAt (j) возвращает символ по j-му индексу в строке (индексирование основано на 0).
  • '+' используется для объединения объектов String. append() используется для объединения объектов StringBuilder (добавьте несколько String в конец объекта StringBuilder).
Другие вопросы по тегам