【发布时间】:2014-06-10 11:43:41
【问题描述】:
您好,我正在尝试使用 Java 字符串操作来解析 VML 路径值。我想检索路径中的所有命令,例如 MoveTo、LineTo、CurveTo、RLineTo(其他命令)以及它们对应的 x 和 y 坐标/参数。
这里是要解析的示例数据,每个命令都有自己的 x,y 坐标。
1. m1,1 l1,200,200,200,200,1 xe
2. m, l1,200,200,200,200,1 xe
您能否建议一种算法或代码来检索命令和每个命令的参数? 例如在数字 1 中。
Command = moveto 'm'
Command Parameters = (x=1,y=1).
参考: http://www.w3.org/TR/NOTE-VML#_Toc416858391
这很奇怪,但我尝试使用像
这样的 StringTokenizerStringTokenizer tokenizer = new StringTokenizer(path);
一位朋友建议使用 StringTokenizer,它做了一些接近我的目标的事情,它给了我以下数据。也许我可以利用 StringTokenizer 来满足我的需要。
m1,1
l1,200,200,200,200,1
xe
对于#1,这是理想的输出。 (伪代码)
String command_type = "m" List<String, String> parameters = add("1", "1")
String command_type = "l" List<String, String> parameters = add("1", "200")
add("200", "200")
add("200", "1")
String command_type = "x" (can have no parameter )
String command_type = "e" (can have no parameter )
对于#2,这是理想的输出。 (伪代码)
String command_type = "m" List<String, String> parameters = add("0", "0") // because the x and y parameters are not specified so I need to force them to 0,0
String command_type = "l" List<String, String> parameters = add("1", "200")
add("200", "200")
add("200", "1")
String command_type = "x" (can have no parameter )
String command_type = "e" (can have no parameter )
【问题讨论】:
-
您能否为您的 3 个示例中的每一个提供所需的输出?
-
您好,感谢您的快速回复,我更新了示例并删除了第三个。 :-)
-
String tokenizer 已弃用,使用 String.split(regex) 效果相同
标签: java string string-matching stringtokenizer vml