package org.me.mylib;public class LibClass {
    public static String acrostic(String[] args) {
        StringBuffer b = new StringBuffer();
        for (int i = 0; i < args.length; i++) {
            if (args[i].length() > i) {
                b.append(args[i].charAt(i));
            } else {
                b.append('?');
            }
        }
        return b.toString();
    }
}package acrostic;import org.me.mylib.LibClass;public class Main {    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        String result = LibClass.acrostic(args);
        System.out.println("Result =" + result);
    }}运行结果为:   Result =Hello我只提供了一个参数:However we all feel zealous
为什么结果是  Hello  呢?

解决方案 »

  1.   

    "However we all feel zealous"这个东西只算是一个参数吗?
    这个就是一个长度为5的String数组了
      

  2.   

    However we all feel zealous 
      

  3.   

    你输入了五个args
    明显的if (args[i].length() > i) {
                    b.append(args[i].charAt(i));
    根据for循环第一次i为1所以charAt的h
    i=1时 charAt是e即we的第二个字母
    i=2时 charAt是l即all的第三个字母
    i=3时 charAt是l即feel的第四个字母
    i=4时 charAt是o即zealous的第四个字母
    所以是hello
      

  4.   

    你输入了五个args
    明显的if (args[i].length() > i) {
                    b.append(args[i].charAt(i));
    根据for循环第一次i为1所以charAt的h
    i=1时 charAt是e即we的第二个字母
    i=2时 charAt是l即all的第三个字母
    i=3时 charAt是l即feel的第四个字母
    i=4时 charAt是o即zealous的第四个字母
    所以是hello
      

  5.   

    就是这样 因为你是args[i].charAt(i)