执行各种String操作的有效方法

时间:2014-01-06 08:39:46

标签: java regex string stringbuilder

我有一个脚本,我必须从字符串中提取字符串,获取最后一个索引,在字符串中获取第n个字符,比较,字符串包含字符串或不等等。我想知道最佳方法/实践在java中对字符串执行此类操作。我是否应该始终使用StringBuilder来执行上述操作。在少数情况下,我使用regular expressions来查找字符串。 那我该怎么用? 场景是:必须找到大量的比较和索引。谢谢!


示例:

    String name = "application/octet-stream; name=\"2012-04-20.tar.gz\""; // get 2012-04-20.tar.gz
    Pattern pattern = Pattern.compile("\"(.*?)\"");
    Matcher matcher = pattern.matcher(name);
    if (matcher.find()) {
        System.out.println(matcher.group(1));
    }

    String date = " Number 4, December 2013";
    String year = date.substring(date.lastIndexOf(" ")+1);
    String month = date.substring(date.indexOf(',')+2,date.indexOf(" ",date.indexOf(',')+2 ));
    date = year+getMonth(month)+"01";
    System.out.println(date);

如上所述,字符串中的许多其他字符串提取。

3 个答案:

答案 0 :(得分:0)

由于您没有操作字符串,因此可以使用String或StringUtils而不是StringBuilder

答案 1 :(得分:0)

所有这些操作都可以使用String类完成,请参阅下面的应该使用的方法。

  

从字符串中提取字符串

String.substring()

  

获取最后一个索引

String.length() -1

  

最后一个字符

s.charAt(s.length() - 1);

  

获取字符串中的第n个字符

String.charAt()

  

比较

String.compareTo()

  

字符串是否包含字符串

String.contains()
如有必要,您还可以在两者上使用String.toLowerCase()

答案 2 :(得分:0)

当你处理大量的String对象时,明智地使用String intern函数来节省堆空间并消除对象创建开销。有关更多信息,请参阅here