检查字符串的更好方法?

bean_droid

我有一个检查字符串是否包含空格,逗号等的代码。好吧,因为我要处理一个应用程序要检查的情况,所以说一千个字符串,最大长度为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;
}

这样对吗?还是有办法改善它?

斯蒂芬·C

您可以进行一些更改,但可能有所不同:

改变

    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中。

不要“担心”。科学地解决问题。

  1. 实施代码,然后对其进行基准测试。
  2. 如果需要衡量性能,则:
    1. 分析代码
    2. 查看热点,并确定可能的改进
    3. 实施并测试可能的改进
    4. 重新运行基准,以查看改进是否真正产生了影响
    5. 重复...直到性能足够好或您用光了所有选项。

还要注意的另一件事是,相同的代码在不同的Android平台上可能会表现出不同的性能。在最近的发行版中,JIT编译器的质量(显然)已得到明显改善。

我会认为“弯曲”代码以使其在旧手机上正常运行是一个坏主意。用户有可能很快就会升级其硬件...并且可以想象,您对旧平台的优化实际上会使您在新平台上的代码变慢...因为您的手动优化使代码过于棘手供JIT编译器的优化器处理。

这也是不试图使您的代码“尽可能快地”运行的一个论点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章