例如,我有一个包含以下内容的字符串:
String s = "test string *67* **Hi**";
我想得到这个字符串:
*67*
有了星星,所以我可以开始替换那部分字符串。我的代码目前看起来像这样:
String s = "test string *67* **Hi**";
s = s.substring(s.indexOf("*") + 1);
s = s.substring(0, s.indexOf("*"));
这输出:67
没有星星。
我想知道如何在一些特殊字符之间获取字符串,但不能将字符组合在一起,就像我想要的那样。
输出应如下:
//output: test string hello **hi**
答案 0 :(得分:2)
您只需扩展边界:
s = s.substring(s.indexOf("*"));
s = s.substring(0, s.indexOf("*", 1)+1);
答案 1 :(得分:2)
仅替换特殊字符之间的字符串:
00:00:00
修改强>
要删除特殊字符,请使用以下正则表达式:
String regex = "(\\s\\*)([^*]+)(\\*\\s)";
String s = "test string *67* **Hi**";
System.out.println(s.replaceAll(regex,"$1hello$3"));
// output: test string *hello* **Hi**
答案 2 :(得分:1)
s = s.substring(s.indexOf("*"));
s = s.substring(0, s.indexOf("*", 1) + 1);
你的+1在错误的地方:)然后你只需要从第二个位置找到下一个
答案 3 :(得分:0)
我认为你甚至可以通过列表来获得你的输出
String s = "test string *67* **Hi**";
List<String> sList = Arrays.asList(s.split(" "));
System.out.println(sarray.get(sarray.indexOf("*67*")));
希望这会有所帮助。