java - 使用 Java 字符串时的提示和技巧,以提高性能和安全性

标签 java string performance security

<分区>

我发现我自己不断地改变我的实用方法来改进我的 Java 代码中的字符串处理。例如,我更改了一堆搜索和替换代码以使用 commons StringUtils.replace 方法。或者将 1.4 升级到 1.6 java 以键入安全代码。

我想请您发布您使用的实践,以便让您的字符串操作平稳、安全、快速地运行,并且您的代码的可重用性相当简单和优雅。

如果你有模式,那就更好了。

此外,如果您现在有任何值得一试的新 1.7 java 功能,请在此处发布。

处理非常大的字符串时该怎么办?打散他们?

在字符串上使用正则表达式时要记住什么?

在使用循环密集型算法时如何利用缓存模式(哪些是最好的一次)?

有没有类似grep、ack、diff功能的库 |拼写检查 |过滤脏话(任何词)...

最佳答案

如果可能你应该使用StringBuilder ,特别是用于连接字符串。性能提升可能非常大。

StringBuilder sb = new StringBuilder("Mat");
sb.append(" ");
sb.append("Bank");
// oops
int i = sb.indexOf("k");
sb.insert(i, 'i'); // character
String mb = sb.toString();
// result = "Mat Banik"

在大型程序中,使用 s1+s2 是最糟糕和最容易解决的性能问题之一。

StringBuilder 几乎具有String 的所有特性。您可以在不复制的情况下提取子字符串。当您需要一个字符串(例如,对于模式/匹配器)时,您可以使用 toString() 进行转换。

关于java - 使用 Java 字符串时的提示和技巧,以提高性能和安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360010/

相关文章:

使用 ActiveMQ 5.6.0 进行 Java 单元测试

java - JFreeChart 中的 LogAxis 上未显示小刻度

java.net.ConnectException : Failed to connect to/127. 0.0.1:9080 Realm 对象服务器

java - 计算字符串中字符的频率(Java,性能)

python 函数(或代码块)在循环中的时间间隔内运行速度要慢得多

java - JScrollPane 弄乱了大小

java - 将索引处的所有字符(在 StringBuilder 中)替换为另一个字符串

java - Java 字符串的默认初始值是多少?

c++ - 为什么 THREAD_MODE_BACKGROUND_BEGIN 导致我的代码运行速度比 THREAD_PRIORITY_LOWEST 慢 20 倍?

php - Django/Python 中是否有一个类似于 PHP flush() 的函数可以让我向客户端发送部分 HTTP 响应?