Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串按“拆分”/&引用;及//&引用;?_Java_Regex_Split_Wavefront - Fatal编程技术网

Java 如何将字符串按“拆分”/&引用;及//&引用;?

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];

我正在尝试为波阵面对象文件创建一个基本的模型查看器,文件读取的一部分包括分割每一行。面是基于斜线定义的。以下是可以从Wikipedia解析的不同类型的面:


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
}