2014-11-22 61 views
2

嘿,我正在读取.obj文件的行,我想加载他们到一些数组,但我需要正确解析它们。字符串阵列拆分没有删除

我读一些线路是这样的: ˚F19/19/115 25/25/116 17/22/117

,我想通过拆分他们为“/”,但不删除该字符,这是我想要得到的结果:

[f,19,/,19,/,115,25,/,25,/,116,17,/,22,/,117] 

而我当我这样做:

tokens = line.split("[/ ]+"); 

我越来越:

[f, 19, 19, 115, 25, 25, 116, 17, 22, 117] 
+3

https://docs.oracle.com/javase/7/d ocs/api/java/util/StringTokenizer.html#StringTokenizer%28java.lang.String,%20java.lang.String,%20boolean%29 – 2014-11-22 12:07:49

+0

如果您尝试'string1.replace(“/”,“#/”)。分裂(“#”);'? [同样的例子](http://stackoverflow.com/questions/4416425/how-to-split-string-with-some-separator-but-without-removing-that-separator-in-j) – Milaci 2014-11-22 12:08:43

+0

你可能会发现这个回答很有用:http://stackoverflow.com/questions/2206378/how-to-split-a-string-but-also-keep-the-delimiters。 – Iootu 2014-11-22 12:09:09

回答

1

尝试以下方法:

tokens = line.split("(?<=/+)|(?=/+)| +"); 

(?<=/+):匹配一个或多个/在回顾后表达

(?=/+):匹配一个或多个/在先行表达

+0

[f 1,/ 1,/ 1 2,/ 2,/ 2 3,/ 3,/ 3] 我也是这样 – MMrj 2014-11-22 12:12:51

1

尝试这种情况:

System.out.println(Arrays.toString("f 19/19/115 25/25/116 17/22/117".replace("/","#/#").split("[# ]")));