这个Java代码段是如何工作的?
我作为一名初学者学习Java,但我不理解这个脚本 我有一个“先看后说”的任务。这个Java代码段是如何工作的?,java,charat,Java,Charat,我作为一名初学者学习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");
有人能告诉我这是怎么回事吗
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);
}
}
}
公共类应用程序{
公共静态void main(字符串[]args){
for(int k=0,len=args.length;k 对于(i=1;i,如果查看Java文档,您可以很容易地得到答案
- StringBuilder类用于创建可变字符串。它的性能比普通字符串类(不可变)要好。原因如下:
- charAt(j)返回字符串中第j个索引处的字符(索引基于0)
- “+”用于连接字符串对象。append()用于连接StringBuilder对象(将一些字符串添加到StringBuilder对象的末尾)
您可以分别从StringBuilder
和String
的Java文档中获得前两个问题的答案。您已经阅读了Java文档了吗?请再次阅读。