假設其他的解決方案不會爲你工作,因爲他們沒有正確地檢測匹配的引號或忽略引用文本內的空間,你可以試試:
private void addTokens(String tokenString, List<String> result) {
String[] tokens = tokenString.split("[\\r\\n\\t ]+");
for (String token : tokens) {
result.add(token);
}
}
List<String> result = new ArrayList<String>();
while (input.contains("\"")) {
String prefixTokens = input.substring(0, input.indexOf("\""));
input = input.substring(input.indexOf("\"") + 1);
String literalToken = input.substring(0, input.indexOf("\""));
input.substring(input.indexOf("\"") + 1);
addTokens(prefixTokens, result);
result.add(literalToken);
}
addTokens(input, result);
注意,這將不處理不平衡報價,逃脫的報價或其他錯誤/錯誤輸入的情況。
後輸入文本的例子,然後您希望收到,這將會使口譯的空間更小的東西。 – edwardsmatt 2011-04-21 01:48:42
-1,請參閱edwardTheGreat對如何發佈具有詳細信息的問題的評論,以便我們不必猜測您的確切要求。 – camickr 2011-04-21 02:16:17