【问题标题】:How does this Java snippet work? [closed]这个 Java 代码片段是如何工作的? [关闭]
【发布时间】:2017-06-01 21:20:55
【问题描述】:

我作为初学者正在学习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);
    }
  }
}

【问题讨论】:

  • 您可以从 Javadocs 中分别获得 StringBuilderString 的前两个答案。
  • 您是否为此阅读过 Java 文档。请再读一遍。

标签: java charat


【解决方案1】:

如果您查看 Java 文档,您可以轻松获得答案。

  • StringBuilder 类用于创建可变字符串。它比普通的 String 类(它是不可变的)执行得更好。原因在这里:What is difference between mutable and immutable String in java
  • charAt(j) 返回字符串中第 j 个索引处的字符(索引从 0 开始)。
  • '+' 用于连接字符串对象。 append() 用于连接 StringBuilder 对象(在 StringBuilder 对象的末尾添加一些 String)。

【讨论】:

    猜你喜欢
    • 2021-12-11
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 2019-12-07
    • 2011-05-16
    相关资源
    最近更新 更多