提取字符串的特定部分

Extracting specific parts of a String

我正在尝试获取此字符串的 "work" 部分:

 String test = "\prod\mp\incoming\users\work\test.java";

我一直在尝试这样做:

  String result = test.substring(test.lastIndexOf("\")+1 , test.length());

但这是返回 "test.java"

尝试:

String test = "\prod\mp\incoming\users\work\test.java";
String[] s = test.split("\");
result = s[s.length-2];

这里是 split method 签名:

public String[] split(String regex);

它将此字符串拆分为给定正则表达式的匹配项和 returns 包含匹配项的字符串数组。在您的情况下,您需要获得倒数第二个匹配项,即索引为 s.length-2 的匹配项,因为数组 s 中的最后一个元素具有索引 s.length-1

将你的单行分解成合理的部分。而不是这个...

String result = test.substring(test.lastIndexOf("\") + 1 , test.length());

...试试这个...

int lastSlashIndex = test.lastIndexOf("\");
int endIndex = test.length();
String result = test.substring(lastSlashIndex + 1, endIndex);

然后你的子字符串从最后一个斜杠到字符串的末尾变得非常明显。那么如何解决呢?首先,您需要正确描述问题。您可能会尝试做两件事,但我不知道哪个是正确的:

  • 您要查找路径中的第五项。
  • 您想查找路径中的倒数第二个项目。

第一个我会解决,如果是第二个,你应该可以按照我的做法自己做。

// Get the fifth item in the path
String[] items = test.split("\");
String result = items[4];

添加一些错误检查以防止数组索引越界异常。

String[] items = test.split("\");
String result = "";
if (items.length > 4)
    result = items[4];