1

だから私は文字列を分割しようとしています

String[] tokens = coded_string.split("\\)|\\(|\\,|\\s+");

したがって、コード化された文字列がstudents = load(classlist.csv) すべてのトークンである場合は問題ありません

token[0] = "students"
token[1] = "="
token[2] = "load"
token[3] = "classlist.csv"

しかし、students = load ( classlist.csv )角かっこの間の文字列スペースが空のトークンを取得すると、それはなぜですか?どうすれば修正できますか?

token[0] = "students"
token[1] = "="
token[2] = "load"
token[3] = ""
4

2 に答える 2

3

2つの区切り文字が連続してあり、空のスペースの後に開いたパレンが続くため、それらの間にある「nothing」に一致するものが空の文字列として返されます。代替の代わりに文字クラスを使用して、潜在的な区切り文字のブロック全体を一致させることができます。あなたは実際の要件を述べていないので、それがすべての入力に対して厳密に正しいかどうかを知るのは難しいです。

String[] tokens = coded_string.split("[)(,\\s]+");
于 2012-10-23T01:47:55.850 に答える
0

coded_string.split("(\\)|\\(|\\s+)+")正常に動作します

于 2012-10-23T01:50:59.150 に答える