2013-03-10 2 views
-4

Я использовал этот код, чтобы попробовать это:как считать буквы в каждой букве в строке на Java?

String st="Hello world have a nice day"; 
String arr=st.Split(" "); 
for (int i=0; i < arr.length; i++) { 
    ??? 
} 

Но это не работает.

я хочу, чтобы вывести что-то вроде этого:

Hello=5 
World=5 
have=4 
a=1 
nice=4 
day=3 

Кто-нибудь знает правильный код, пожалуйста?

ответ

4

Вы можете использовать что-то вроде этого:

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

for (String word : words) { 
    System.out.println(word + " length is: " + word.length()); 
} 
0

Используйте расширенный цикл и распечатать слова и его длины.

foreach(String w : st.split()) { 
    System.out.println(w + ": " + w.length()); 
} 
1

word.length() возвращает длину строки.

Однако метод split() просто разделит строку на пробелы, оставив все в результате разбиения. Под всем я подразумеваю пунктуацию, табуляторы, символы новой строки и т. Д., И все они будут учитываться по длине. Поэтому вместо того, чтобы просто делать word.length(), вы можете сделать что-то вроде:

word.replaceAll("\p{Punct}", "").trim().length().

  • replaceAll("\p{Punct}", "") удаляет все знаки препинания из String.

  • trim() удаляет все ведущие и завершающие пробелы.

Так, например, предложение:.

я увидел нечто неуловимое \ п

(\n означает конец строки символ, который вы можете получить, если вы прочтете String из файла, например).

Приговор будет разделен на:

"I" 
"saw" 
"a" 
"will-o'-the-wisp.\n" 

последняя строка

блуждающий огонек \ п

имеет 18 символов, но это больше. чем число символов в слове.После метода replaceAll(), строка будет выглядеть следующим образом:

блуждающие огни \ п

и после метода trim(), строка будет выглядеть следующим образом:

блуждающие огни

который имеет длину 12, длину слова.

Смежные вопросы