读取字符串的某个部分(Java)

时间:2017-10-23 11:10:24

标签: java java.util.scanner

我想在这个字符串中读取字符串的某个部分:

    <test>3:35</test>

我想读的部分是3:35,但我似乎无法弄明白。 我现在拥有的是:

    s.skip("<test>");
    t = s.next();
    s.skip("</test>");

但当然,我回来的只是3:35</test>因为我跳过t = s.next()

任何人都可以解释一下我可能没有在这里看到太简单的解决方案吗?

3 个答案:

答案 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); 

最好创建一个函数,将原始字符串和要替换的字符串作为参数,然后返回所需的值......