【问题标题】:How to find number of characters per word in a list? (Java)如何查找列表中每个单词的字符数? (爪哇)
【发布时间】:2017-07-13 12:14:34
【问题描述】:

我想让输出说

每个单词的总字母为:

艾玛 = 4

泰勒 = 6

雅各布 = 5

罗杰 = 5

JP = 2

我知道我的 for 循环是错误的,它输出所有名称的总字符数。

块引用

public static void main(String[] args){

List<String> myList = Arrays.asList("Emma", "Taylor", "Jacob", "Roger", "JP");// list of names

String[] arrayOfNames = new String[myList.size()]; 

myList.toArray(arrayOfNames);


    System.out.println("List of names: " +
    Arrays.toString(arrayOfNames));

    String myL = myList.toString();

    String[] words = myL.split(" ");

    int total = 0;

    for (int i = 0; i < words.length; i++) //for loop incorrect

      {

        total += words[i].length();
      }

         System.out.println("Total letters per word is: "+total);//see above

       }
}
  

块引用

【问题讨论】:

  • 你在这里把事情复杂化了。你只需要 5 行代码。
  • 可以使用流并使用 myList.stream().mapToInt(String::length).sum() 之类的东西。

标签: java string list


【解决方案1】:

你把它弄得太复杂了,需要尝试这样的事情:

public static void main (String[] args) throws java.lang.Exception
{
    List<String> myList = Arrays.asList("Emma", "Taylor", "Jacob", "Roger", "JP");
    System.out.println("Total letters per word is: ");
    for (int i = 0; i < myList.size(); i++) //for loop incorrect
    {
    System.out.println(myList.get(i)+" = " + myList.get(i).length());
    }
}

【讨论】:

  • 谢谢!正是我需要的。
【解决方案2】:

例如你可以这样做:

public static void main(String[] args){

    List<String> words = Arrays.asList("Emma", "Taylor", "Jacob", "Roger", "JP");// list of names

    StringBuilder builder = new StringBuilder("Total letters per word is: \n");
    for (String word: words) {
        builder.append(word + ": " + word.length() + "\n");
    }

    System.out.println(builder.toString());
}

【讨论】:

    【解决方案3】:

    为什么不像这样遍历myList 并打印出每个单词的长度(字符数量):

    import java.util.Arrays;
    import java.util.List;
    
    class Main {
      public static void main(String[] args) {
        List<String> myList = Arrays.asList("Emma", "Taylor", "Jacob", "Roger", "JP");
        System.out.println(Arrays.toString(myList.toArray()));
        System.out.println("Total letters per word is: ");
        for(String name : myList) {
          System.out.printf("%s = %d\n", name, name.length());
        }
      }
    }
    

    输出:

    [Emma, Taylor, Jacob, Roger, JP]
    Total letters per word is:
    Emma = 4
    Taylor = 6
    Jacob = 5
    Roger = 5
    JP = 2
    

    测试一下here!

    【讨论】:

    • 谢谢你真棒!我已经很久没有编程了,我正在学习一门新的编程课程,但被卡住了,谢谢!。
    猜你喜欢
    • 2013-04-07
    • 2017-06-25
    • 2013-11-01
    • 1970-01-01
    • 2022-01-05
    • 2013-12-25
    • 2013-11-29
    • 1970-01-01
    • 2013-03-11
    相关资源
    最近更新 更多