私は唯一のこれらのトークンにname: john, id: 20, dest: toledo, from: seattle, date_time: [2/8/12 15:48:01:837 MST]
に似た文字列の数を分割したい:スプリットのトラブル分割文字列(正規表現)は、Java
john
20
toledo
seattle
[2/8/12 15:48:01:837 MST]
私もこの
String delims = "(name|id|dest|from|date_time)?[:,\\s]+";
String line = "name: john, id: 20, dest: toledo, from: seattle, date_time: [2/8/12 15:48:01:837 MST]";
String[] lineTokens = line.split(delims, 5);
for (String t : lineTokens)
{
// for debugging
System.out.println (t);
// other processing I want to do
}
が、すべてをやっていますlineTokensの要素は、空白または空白のいずれかになります。 lineTokens [0]は ""、lineTokens [1]は "john"、lineTokens [2]は ""、lineTokens [3]は "20"などです。私は間違っているの?
これは機能します。私はなぜlineTokensの0番目のインデックスがまだ空であるのか、split()の2番目の引数(なぜなら0番目のインデックスが空であるように見える)のために6を渡す理由について興味があります。 – Nate
ああ、両方の答えは実際は同じです。文字列が区切り文字で始まっている場合、最初の一致として空の文字列を取得します。その一致を無視する必要があります。 –
ああああ。ありがとう! – Nate