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, длину слова.