【问题标题】:Convert integer array list into string based in ascii table and compare with string基于ascii表将整数数组列表转换为字符串并与字符串进行比较
【发布时间】:2017-12-03 13:39:08
【问题描述】:

嗯,我正在寻找替代方法来做以下事情。

我有一个字符串和一个基于 ascii 表中字符的整数列表。 我的问题是:我可以采用另一种更快的方法来比较字符串以避免以下代码吗?

public class Main 
{
    public static void main(String[] args) 
    {
        final String word = "Example!";
        final String secondWord = convert(Arrays.asList(69, 120, 97, 109, 112, 108, 101, 33));

        System.out.println(word.equals(secondWord));
    }

    public static String convert(final List<Integer> list) {
        final StringBuilder sb = new StringBuilder();
        for (int num : list)
            sb.append((char) num);

        return sb.toString();
    }
}

【问题讨论】:

  • 您展示的代码有什么不好的地方?您在寻找更有效或更短的方法吗......?
  • 我投票结束这个问题,因为关于优化/审查工作代码的问题属于codereview.stackexchange.com,而不是 Stack Overflow。但是read their help first 以确保您充分确定问题的范围。
  • 您的问题以当前的形式无法真正回答,现在您的代码完全是静态的,没有什么动态的,所以“更有效”就是打印“true”或“false”。什么应该更通用?
  • 两者,我想避免将每个字符存储在字符串生成器中的方法。
  • 那么不要使用 StringBuilder。创建一个输出字符串并使用 for 循环将所需的字符添加到字符串的末尾!

标签: java string list compare ascii


【解决方案1】:

无需构造List 或StringBuilder。

您可以直接从char[] 构造String:

System.out.println(word.equals(new String (new char[]{69,120,97,109,112,108,101,33})));

【讨论】:

  • 这正是我想要的。谢谢你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多