提取字符串的特定部分
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];
我正在尝试获取此字符串的 "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];