【发布时间】:2018-12-14 21:21:19
【问题描述】:
String text="99.91.220.138 - - [05/Oct/2015:06:37:26 +0300] "GET /R/0A/ID_0000013091.ism/QualityLevels(1469889)/Fragments(video=14795200000) HTTP/1.1" 200 658377 "-" "Firefox/1.5" "-" rt=0.000 ut="-" cs=HIT";
我想读取这个字符串的所有字符,并将两个空格之间的字符串放入一个数组中:
- array[0] will be "99.91.220.138"
- array[1] will be "-"
- array[2] will be "-"
现在如果两个空格之间有一个“[]”或引号(“”),我想获取字符串直到标记结束,例如:
- array[3] will be "[05/Oct/2015:06:37:26 +0300]"
- array[4] will be "GET
/R/0A/ID_0000013091.ism/QualityLevels(1469889)/Fragments(video=14795200000)
HTTP/1.1"
在此之后或之前,我需要从数组中删除“-”和一些不必要的东西以获得更高的性能。
.
除了使用正则表达式,您还有什么建议?
【问题讨论】:
-
您能否详细说明为什么您不想要使用正则表达式的解决方案?这似乎是一个真正的好用例。
-
我的组长不允许使用正则表达式
-
按空格使用String#slpit
text.split(" ") -
那“[”
-
你的团队领导做出了多么奇怪的选择。好吧,这也将
String.split排除在外。使用正则表达式。您可能应该将您的字符串转换为char[],以一些非常复杂和模糊的方式进行,然后可能与您的团队负责人交谈,直接不允许正则表达式可能不是要走的路。
标签: java arrays parsing split char