【问题标题】:Java ArrayList strings lengths printingJava ArrayList 字符串长度打印
【发布时间】:2017-09-24 05:20:53
【问题描述】:

我的练习是:

创建获取字符串变量列表作为参数的方法lengths,并返回一个ArrayList,其中包含与原始列表相同顺序的字符串长度。

还有我的代码:

import java.util.ArrayList;

public class Test {

public static ArrayList<Integer> lengths(ArrayList<String> strings) {
        ArrayList<Integer> list = new ArrayList<Integer>();

        for (String item : strings) {
            System.out.print(item.length());
        }
        return list;
    }

public static void main(String[] args) {

ArrayList<String> list = new ArrayList<String>();

        list.add("Dog");
        list.add("Elephant");
        list.add("Aligator");
        list.add("Parrot");

        ArrayList<Integer> stringLenghts = lengths(list);
        System.out.println(stringLenghts);

    }
}

这个程序输出

3386[]

代替

[3, 3, 8, 6]

知道我哪里做错了吗?

【问题讨论】:

  • 我不知道是谁投了反对票,但是 IMO,这是个好问题。仅仅因为他是初学者,这并不是一个坏问题。
  • @mmaceachran 而且我不知道谁支持研究得很糟糕的问题除了 OP 对其他任何人都没有帮助(这不是 Stack Overflow 的目的)。
  • @Tom 对不起,我还没有进入 StackOverflow。任何有用的建议如何使用它都会对我很好。
  • 不用担心,正如您在投票中看到的那样,人们并不关心 Stack Overflow 的目的是什么。他们关心的只是勺子喂养和农业声誉。既然您今天已经注册,您应该已经阅读了您需要了解的内容。或者您主动忽略了帮助中心和导览。
  • @Tom 那么你对在这个网站上创建主题有什么建议?

标签: java string arraylist string-length


【解决方案1】:

最初,您从循环中打印每个字符串的长度

for(String item : strings) {
     System.out.print(item.length());
}

其中输出:3386(由于打印没有换行)

打印此空 ArrayList 后,因为您返回的是空的 arrayList 对象。

System.out.println(stringLenghts);

哪个输出:[]

解决方案:
你必须替换
System.out.print(item.length());

list.add(item.length());

【讨论】:

    【解决方案2】:

    试试这个。

    import java.util.ArrayList;
    
    public class Test {
    
    public static ArrayList<Integer> lengths(ArrayList<String> strings) {
        ArrayList<Integer> list = new ArrayList<Integer>();
    
        for (String item : strings) {
            list.add(item.length());
        }
        return list;
    }
    
    public static void main(String[] args) {
    
    ArrayList<String> list = new ArrayList<String>();
    
        list.add("Dog");
        list.add("Elephant");
        list.add("Aligator");
        list.add("Parrot");
    
        ArrayList<Integer> stringLenghts = lengths(list);
        System.out.println(stringLenghts);
    
    }
    }
    

    编辑:在长度方法中,正在创建列表,但您没有向其中添加任何项目。现在在 (String item : strings) { list.add(item.length());这会将每个字符串的长度添加到新的 ArrayList 中,您将返回到 main 方法进行打印。

    谢谢

    【讨论】:

    • 在长度方法中,正在创建列表,但您没有向其中添加任何项目。现在在 (String item : strings) { list.add(item.length());这会将每个字符串的长度添加到新的 ArrayList 中,您将返回到 main 方法进行打印。
    • 感谢您的帮助。工作得很好!
    • 编辑您的答案并将该评论添加到答案@AritraChatterjee
    【解决方案3】:

    您需要更正这个循环体并在此处添加数字

    list.add(item.length());
    

    在括号之间。

    【讨论】:

      【解决方案4】:

      在您的lengths() 方法中,您只是打印长度值。 但是您没有将长度添加到 ArrayList 中,即您的 stringLenghts 列表是空的(因此打印为 [] 空数组),因此如下所示更改您的代码:

      public static ArrayList<Integer> lengths(ArrayList<String> strings) {
              ArrayList<Integer> list = new ArrayList<Integer>();
              for (String item : strings) {
                  list.add(item.length());//add length to list
              }
              return list;
      }
      

      【讨论】:

      • 如此简单 :) 当然工作得很好,非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      相关资源
      最近更新 更多