我有一个检查字符串是否包含空格,逗号等的代码。好吧,因为我要处理一个应用程序要检查的情况,所以说一千个字符串,最大长度为15,最小长度为14。由于它在android中,因此担心它是否会影响性能。检查我使用的代码。
private final static char[] undefinedChars = {' ','/','.','<','>','*','!'};
public static boolean checkMessage(String message){
if (message == null)
return false;
char[] _message = message.toCharArray();
for (char c : _message) {
for (int i = 0;i > undefinedChars.length;i++)
if (c == undefinedChars[i])
return true;
}
return false;
}
这样对吗?还是有办法改善它?
您可以进行一些更改,但可能会有所不同:
改变
char[] _message = message.toCharArray();
for (char c : _message) {
到
for (int i = 0; i < message.length(); i++) {
char c = message.charAt(i);
但是,我怀疑这是否有意义。
switch
尽管用JIT编译器对代码进行处理,但是用a替换内部循环更有可能取得成果。(并且仅当可以将未定义的字符集作为编译时常量硬连接到switch语句中时,switch才起作用。)
我担心它是否会影响性能,因为它在android中。
不要“担心”。科学地解决问题。
还要注意的另一件事是,相同的代码在不同的Android平台上可能会表现出不同的性能。在最近的发行版中,JIT编译器的质量(显然)已得到明显改善。
我会认为“弯曲”代码以使其在旧手机上正常运行是一个坏主意。用户有可能很快就会升级其硬件...并且可以想象,您对旧平台的优化实际上会使您在新平台上的代码变慢...因为您的手动优化使代码过于棘手供JIT编译器的优化器处理。
这也是不试图使您的代码“尽可能快地”运行的一个论点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句