以下のような文字列の値をどのように解析しますか?
12:40:11 8 5 87
数値間のギャップはさまざまであり、最初の値は時間です。次の正規表現は、時間コンポーネントを分離しません。
str.split("\\w.([:]).")
助言がありますか?
以下のような文字列の値をどのように解析しますか?
12:40:11 8 5 87
数値間のギャップはさまざまであり、最初の値は時間です。次の正規表現は、時間コンポーネントを分離しません。
str.split("\\w.([:]).")
助言がありますか?
正規表現\s+
は1つ以上の空白と一致するため、次のsplit
4つの値になります。
"12:40:11", "8", "5", "87"
Java文字列リテラルとして、このパターンは"\\s+"
です。
6つの数値すべてを取得する場合は、で分割する必要が:
あるため、パターンは\s+|:
です。Java文字列リテラルとして、これは"\\s+|:"
です。
Scanner
を使用する代わりに、を使用String.split
することもできます。これはjava.util.Scanner
、に使用するものとuseDelimiter
同じですsplit
。利点はint nextInt()
、数値を次のように抽出するために使用できることですint
(それが本当に興味のあるものである場合)。
パターンドキュメントと文字列APIを参照してください。
使用する
str.split("\\s+");
降伏します
[ '12:40:11', '8', '5', '87' ]
また
str.split("\\s+|:");
降伏する必要があります
[ '12', '40', '11', '8', '5', '87' ]