6

以下のような文字列の値をどのように解析しますか?

12:40:11  8    5                  87

数値間のギャップはさまざまであり、最初の値は時間です。次の正規表現は、時間コンポーネントを分離しません。

str.split("\\w.([:]).")

助言がありますか?

4

2 に答える 2

9

正規表現\s+は1つ以上の空白と一致するため、次のsplit4つの値になります。

"12:40:11", "8", "5", "87"

Java文字列リテラルとして、このパターンは"\\s+"です。

6つの数値すべてを取得する場合は、で分割する必要が:あるため、パターンは\s+|:です。Java文字列リテラルとして、これは"\\s+|:"です。

参考文献


の上Scanner

を使用する代わりに、を使用String.splitすることもできます。これはjava.util.Scanner、に使用するものとuseDelimiter同じですsplit。利点はint nextInt()、数値を次のように抽出するために使用できることですint(それが本当に興味のあるものである場合)。

関連する質問

于 2010-06-22T01:23:48.410 に答える
2

パターンドキュメント文字列APIを参照してください。

使用する

str.split("\\s+");

降伏します

[ '12:40:11', '8', '5', '87' ]

また

str.split("\\s+|:");

降伏する必要があります

[ '12', '40', '11', '8', '5', '87' ]
于 2010-06-22T01:24:56.317 に答える