word.length()
возвращает длину строки.
Однако метод split()
просто разбивает строку на пробелы, оставляя все в результирующих разбиениях. Под всем я подразумеваю знаки препинания, табуляторы, символы новой строки и т. д., и все это будет учитываться при подсчете длины. Поэтому вместо того, чтобы просто делать word.length()
, вы можете сделать что-то вроде:
word.replaceAll("\p{Punct}", "").trim().length()
.
replaceAll("\p{Punct}", "")
удаляет все знаки препинания из строки.
trim()
удаляет все начальные и конечные пробелы.
Так, например, предложение:
Я видел блуждающий огонек.\n
(\n
означает символ конца строки, который вы можете получить, например, если читаете строку из файла).
Предложение будет разделено на:
"I"
"saw"
"a"
"will-o'-the-wisp.\n"
последняя строка
блуждающий огонек.\n
имеет 18 символов, но это больше, чем количество символов в слове. После метода replaceAll()
строка будет выглядеть так:
блуждающий огонь\n
а после метода trim()
строка будет выглядеть так:
блуждающий огоньк
который имеет длину 12, длину слова.
10.03.2013