1

我想找到一个方法的路径,比如“p2-SnakesAndLadders/snakes/DieTest/reached”,并通过在前面加上“|java+method://”并将该字符串用作位置来将其转换为位置。相反,我想获取一个位置的字符串值。Location 或 String 的文档中似乎没有任何提示。

4

2 回答 2

2

首先,您可以通过将字符串添加到位置的末尾来做到这一点,就像这样(我认为您需要三个正斜杠,至少在我的情况下,如果我只使用两个,我会得到一个格式错误的 URI 异常):

rascal>l = |java+method:///| + "p2-SnakesAndLadders/snakes/DieTest/reached";
loc: |java+method:///p2-SnakesAndLadders/snakes/DieTest/reached|

第二个你可以使用路径字段

rascal>l.path;
str: "/p2-SnakesAndLadders/snakes/DieTest/reached"

如果你想摆脱第一个斜线,你可以这样做

rascal>l.path[1..];
str: "p2-SnakesAndLadders/snakes/DieTest/reached"
于 2013-09-10T14:20:42.437 回答
1

谢谢。我还发现插值效果很好,所以如果我有一个 uri,那么

uri == |<uri.scheme>://<uri.authority><uri.path>|
于 2013-09-10T15:13:43.030 回答