Java 如何将字符串按“拆分”/&引用;及//&引用;?
我正在尝试为波阵面对象文件创建一个基本的模型查看器,文件读取的一部分包括分割每一行。面是基于斜线定义的。以下是可以从Wikipedia解析的不同类型的面:Java 如何将字符串按“拆分”/&引用;及//&引用;?,java,regex,split,wavefront,Java,Regex,Split,Wavefront,我正在尝试为波阵面对象文件创建一个基本的模型查看器,文件读取的一部分包括分割每一行。面是基于斜线定义的。以下是可以从Wikipedia解析的不同类型的面: f v1 v2 v3 v4 斜杠在正则表达式中没有什么特别的。试试这个: for (String facePart : input.replaceAll("^f "), "").split(" ")) { String[] data = facePart.split("/"); String vertex = data[0];
f v1 v2 v3 v4 斜杠在正则表达式中没有什么特别的。试试这个:
for (String facePart : input.replaceAll("^f "), "").split(" ")) {
String[] data = facePart.split("/");
String vertex = data[0];
String texture = data.length > 1 ? data[1] : "";
String normal = data.length > 2 ? data[2] : "";
// do something with the info
// variables will be blank if missing from input
}
/
在Java正则表达式中不是特殊字符。你想的是\
。如果你先按/
分割,你会弄乱/
分隔符;在按/
拆分之前,您可能应该先按/
拆分(假设要拆分的/
和/
在同一个字符串中)。我认为我拆分它们是错误的,因为我没有得到正确的结果。
您能显示您当前的结果和预期的结果吗?要编辑您的问题,请单击问题下方的“编辑”按钮或此处[]。拆分任何内容都不太可能产生您想要的结果;这里也有空格。您可能需要捕获模式匹配。当按文本而不是正则表达式进行拆分时,我建议使用。这样,如果分隔符字符串中的任何字符是特殊的regexp字符,就不会出现问题。
for (String facePart : input.replaceAll("^f "), "").split(" ")) {
String[] data = facePart.split("/");
String vertex = data[0];
String texture = data.length > 1 ? data[1] : "";
String normal = data.length > 2 ? data[2] : "";
// do something with the info
// variables will be blank if missing from input
}