2017-02-23 93 views
0

Я хочу выход сказатьКак найти количество символов на слово в списке? (Java)

Всего букв в слове:

Эмма = 4

Taylor = 6

Jacob = 5

Roger = 5

JP = 2

Я знаю, что мой цикл for ошибочен, он выводит общие символы всех имен.

Спасибо в продвижении.

Blockquote

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 

     } 
} 

Blockquote

+0

Вы по сложным вещам здесь. Вам просто нужно 5 строк кода. –

+0

Вы _could_ используете потоки и переходите к чему-то вроде 'myList.stream(). MapToInt (String :: length) .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