Aja*_*mar 6 java string substring java-8
我有一个String:
String thestra = "/aaa/bbb/ccc/ddd/eee";
Run Code Online (Sandbox Code Playgroud)
在我的情况下,每次刺痛,至少都会出现两次斜线。
我得到类似下面的内容,它是字符串中/aaa/字符的“前两次出现”之间的子字符串。/
System.out.println("/" + thestra.split("\\/")[1] + "/");
Run Code Online (Sandbox Code Playgroud)
它解决了我的目的,但我想知道是否还有其他优雅且干净的替代方案?
请注意,我需要在 周围使用两个斜杠(前导和尾随)aaa。IE/aaa/
您可以使用indexOf,它接受索引的第二个参数来开始搜索:
int start = thestra.indexOf("/");
int end = thestra.indexOf("/", start + 1) + 1;
System.out.println(thestra.substring(start, end));
Run Code Online (Sandbox Code Playgroud)
它是否更优雅是一个见仁见智的问题,但至少它不会找到/字符串中的每个或创建不必要的数组。
Scanner::findInLine可以使用返回模式的第一个匹配项:
String thestra = "/aaa/bbb/ccc/ddd/eee";
System.out.println(new Scanner(thestra).findInLine("/[^/]*/"));
Run Code Online (Sandbox Code Playgroud)
输出:
/aaa/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1507 次 |
| 最近记录: |