我需要在以下字符串出现之间获取文本:
"--asset"
"--"
所以从字符串开始,
"jelly beans --asset the fat cow jumps over the moon --"
我可以得到这个文本,
"the fat cow jumps over the moon"
除了展示如何做到这一点,我真的很感激解释给出的代码中发生了什么。
答案 0 :(得分:4)
使用String.indexOf()
方法在目标字符串中查找"--asset"
,如果找到,则使用"--"
在"--asset"
索引后的目标字符串中查找匹配的String.indexOf()
。通过这个,您将获得两个索引,然后您需要使用String.subString()
来获得所需的输出。
使用String.trim()
从输出中删除多余的空格。
答案 1 :(得分:1)
使用正则表达式:
System.out.println(s.replaceAll("(--$|.*--\\w+\\s+)", ""));
--$ --> $ means end of string. So --$ matches "--" at the end.
| --> means "or" operation.
\\w --> one or more alphabets a-zA-Z_
\\s+ --> one or more spaces
.* -- > Matches any character 0 or more times greedily (as long as possible)..
答案 2 :(得分:0)
使用正则表达式提取文本。
Pattern pattern = Pattern.compile("--asset(.*)--");
String input = "jelly beans --asset the fat cow jumps over the moon --";
Matcher m = pattern.matcher(input);
if (m.find()) {
System.out.println(m.group(1).trim());
}
答案 3 :(得分:0)
你可以这样做:
String result;
int start = yourString.indexOf("--asset");
if (start != -1) {
int end = yourString.indexOf("--", start);
if (end != -1)
result = yourString.substring(start, end).trim();
}