[HackerRank]Java字串記號(Java String Token)

題目描述

給定一個字串,計算有多少個單字在這個字串內。在這個題目中,一個單字為一個或多個英文字母

原題網址

https://www.hackerrank.com/challenges/java-string-token

輸入格式

輸入一個長度不超過400000個字元的字串,這個字串可以使用以下的正規表示式來表示:

[A-Za-z !,?.\_'@]+

換句話說,字串只會包含英文字母、空格和一些符號「!,?._'@」。

輸出格式

第一行輸出字串內單字的數量N,單字允許重複。接下來的N行,依序將所有找到的單字輸出。

範例輸入

He is a very very good boy, isn't he?

範例輸出

10
He
is
a
very
very
good
boy
isn
t
he

解題概念

一個單字只由英文字母組成,因此可以寫出以下的正規表示式:

利用Java提供的Pattern物件和Matcher物件,即可在一個字串中找到所有符合上面正規表示式的段落。由於我們需要輸出每個單字,需要知道找到的段落是哪個字串,所以將正規表示式加上括號:

如此一來就可以使用Matcher物件的find方法來尋找單字,用group方法來取得單字

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章