我想在这个字符串中读取字符串的某个部分:
<test>3:35</test>
我想读的部分是3:35,但我似乎无法弄明白。 我现在拥有的是:
s.skip("<test>");
t = s.next();
s.skip("</test>");
但当然,我回来的只是3:35</test>
因为我跳过t = s.next()
任何人都可以解释一下我可能没有在这里看到太简单的解决方案吗?
答案 0 :(得分:0)
使用正则表达式:
Pattern pattern = Pattern.compile("<test>(.+?)</test>");
Matcher matcher = pattern.matcher("<test>3:35</test>");
matcher.find();
System.out.println(matcher.group(1)); // Output: 3:35
P.S:正则表达式不是进行此类计算的最佳工具,从长远来看,应该使用XML解析器。
答案 1 :(得分:0)
如果您不想使用正则表达式或XML解析器,可以像这样修改您的解决方案 -
s.skip("<test>");
t = s.next();
t = t.substring(0,t.indexOf("</test>"));
答案 2 :(得分:0)
使用Regex作为Sachin提到,或使用replaceall():
String str = "<test>3:35</test>";
str = str.replaceAll("<test>", "");
str = str.replaceAll("</test>", "");
System.out.println(str);
最好创建一个函数,将原始字符串和要替换的字符串作为参数,然后返回所需的值......