2016-08-25 21 views
0

を分割私は2016-08-25 18:322016-08-26 18:31を1つのオブジェクトとして解析されるように5つの文字列オブジェクトにそれを分割したい、次のクエリ文字列、入力文字列

QUERY 192.168.1.0 0 2016-08-25 18:32 2016-08-26 18:31 

をしました。

String[] arr = str.split(" "); 

文字列を日付を分割する7つの文字列に分割します。私は、Javaを使用して正規表現を使用してそれを行う方法がわかりません。 助けていただければ幸いです。

+2

私はこれを手動で行います。 7に分割し、最後の4を2に結合します。 –

+0

これは私が今やっていることです。しかし確かに良い方法が必要です。 –

+1

より良い定義:より速い?短い?簡単ですか?普遍的な "より良い"ものはありません。 –

答えて

0

限り、項目の位置は、単純に分割した後、あなたの出力配列を操作し、静的なよう:

String[] arr2 = {arr[0], arr[1], arr[2], sdate, edate}; 

幸運:

String sdate = arr[3] + ' ' + arr[4]; 
String edate = arr[5] + ' ' + arr[6]; 

必要に応じて、新しい配列を作ります!

+0

これは私が今やっていることですが、regexを使う良い方法はありません。 –

+1

私は「より良い」についてはわかりません。正規表現は常にトレードオフです。 ([^] +)([^] +)([^] + [^] +)([]] +)を使用して、値を引き出す正規表現を探している場合は、 ^] + [^] +) ' – derelict

0

上記を達成するための別の短くてクールな方法は、スペースで文字列を正規表現を使って新しい行に分割することです。

str.replaceAll("\\s", "\n")

0

あなたは完全にここに正規表現を必要としません。正規表現を使って文字列を解析するのは、かなり複雑なプロセスです。文字列内に静的な位置があり、部分を連結するだけの状況では、正規表現は明らかに過剰です。

正規表現では、ほとんどの場合、コードが読みにくくなります。したがって、ここで正規表現を使用すると、読みにくく実行可能なコードが少なくなります。

RegExに対する投票