2017-02-23 55 views
0

我想要的输出就是每字如何找到列表中的每个字的字符数? (JAVA)

总字母是:

艾玛= 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 

     } 
} 

块引用

+0

你在这里复杂的事情。你只需要5行代码。 –

+0

您_could_使用流,去像'myList.stream()。mapToInt(字符串长度::)的.sum()'。 – Moira

回答

2

你快把它在复杂得多它需要尝试这样的事:

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()); 
    } 
} 
+0

谢谢!正是我所需要的。 – k5man001

0

例如,你可以做这样的:

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()); 
} 
0

为什么不遍历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!

+0

谢谢你真棒!我没有编程这么长时间,我正在编程中接受一门新课,并感谢卡住了! – k5man001

相关问题