Java逐个字符读取字符串并将其放入数组

Java逐个字符读取字符串并将其放入数组,java,arrays,parsing,split,char,Java,Arrays,Parsing,Split,Char,我想读取此字符串的所有字符,并将两个空格之间的字符串放入数组: 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"; 现在,如果两个空

我想读取此字符串的所有字符,并将两个空格之间的字符串放入数组:

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 "-"
在此之后或之前,我需要从数组中删除“-”和一些不需要的内容,以获得更高的性能


除了使用正则表达式,您还有什么建议?

我建议您使用split函数

因此,对于第一个功能,您可以使用:

- 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"
要保留引用的语句,这可能有助于您:


能否详细说明为什么不需要使用正则表达式的解决方案?这似乎是一个很好的实际使用案例。我的团队领导不允许使用regexUse String#slpit by space
text.split(“”)
那么“[”怎么办?团队领导的选择太奇怪了。好吧,这也规定了
String.split
out。使用正则表达式。您可能应该将字符串转换为
char[]
,以一种非常复杂和模糊的方式进行操作,然后可能会与您的团队领导讨论,直接不允许使用正则表达式可能不是一条可行之路。您的解决方案完全依赖正则表达式(第二个问题的链接解决方案也是如此),而OP.string.split(“”)排除了这一点没有帮助,因为我还需要获取“[”和“]之间的字符串“我是用regex做的,但现在我需要用不同的方法来做。哦,你说得对!也许你可以实现一个迭代器来检查数组中的每个字符。然后每次你修改引号时,改变一个布尔值,在满足空格或方括号或不依赖于该布尔值时分割向上提交的数组?
string.split(" ");