Java 如何使用StringTokenizer分割路径?

Java 如何使用StringTokenizer分割路径?,java,Java,如何使用StringTokenizer拆分路径,如“/test/abc/xyz”?如果您真的想使用StringTokenizer,我想在path“xyz”上方获取最后一个值 String path = "/test/abc/xyz"; String xyz = ""; StringTokenizer st = new StringTokenizer(path, "/"); while (st.hasMoreElements()) xyz = (Stri

如何使用
StringTokenizer
拆分路径,如
“/test/abc/xyz”
?如果您真的想使用StringTokenizer,我想在path
“xyz”上方获取最后一个值

String path = "/test/abc/xyz";
String xyz = "";           
StringTokenizer st = new StringTokenizer(path, "/");       
while (st.hasMoreElements())
    xyz = (String) st.nextElement();
但我觉得你应该用String.split

String path = "/test/abc/xyz";
String[] parts = path.split("/");
String xyz = parts[parts.length - 1];
你也可以用扫描仪

String path = "/test/abc/xyz";
String xyz = "";
Scanner s = new Scanner(path);
s.useDelimiter("/");       
while(s.hasNext())
    xyz = s.next();
您可以使用独立于平台的方式来完成:

String input = "/test/abc/xyz";
Path path = Paths.get(input);
String last = path.getFileName().toString(); //xyz

这也适用于
test/abc
abc

是否必须使用StringTokenizer?不要使用StringTokenizer。它是一个遗留类(已经用于多个版本的Java),这意味着不应该再使用它了。使用String的split方法代替我的代码片段使用“test/abc”和“abc”路径,有时会更改为“test/abc”或“abc”。。字符串path=“test/abc/xyz”;StringTokenizer st=新的StringTokenizer(路径“/”);while(st.hasMoreElements()){----这里我如何处理最后一个字符串?我不知道最后一个字符串是什么}请尝试进一步解释您的问题。我不明白。您将在该循环的最后一次运行中获得最后一个字符串。我以这种方式传递字符串“/test/abc/…”,但这里我想使用stringtokenizer获得最后一个值或第一个值。在本例中,我可能的pas字符串方式是“/test/abc/xyz”、“test/abc”和“/test”,它们提到只有我能通过的字符串。将结果放入数组中。LinkedList components=新建LinkedList();StringTokenizer st=新的StringTokenizer(路径“/”);while(st.hasMoreElements())components.add((String)st.nextElement());你可以得到你喜欢的任何价值。getFirst();getLast();