Java:将char []转换为CharSequence

时间:2008-11-18 18:07:42

标签: java string

char[]转换为CharSequence的最直接和/或最有效的方法是什么?

3 个答案:

答案 0 :(得分:31)

没有副本:

CharSequence seq = java.nio.CharBuffer.wrap(array);

但是,new String(array)方法可能更容易编写,更易于阅读和更快。

答案 1 :(得分:8)

StringCharSequence。因此,您可以根据String创建新的char[]

CharSequence seq = new String(arr);

答案 2 :(得分:0)

上下文:

char []而不是String的最常见用法之一是“临时”存储秘密/密码。要将其传递给某些服务/客户端的初始化...在此类初始化之后,不需要使用Sercret。但是在java字符串中不可能从内存中清除它(手动或通过垃圾回收)... 因此,基本上禁止在字符串中存储秘密。

推荐方法:将机密加载到char [],将其传递给init进程,然后手动清除(设置forEach char [i] ='0';)。 在专业博客上了解有关此问题的信息...

问题/答案:

  • 如果service / cliets API仅接受pass / secret作为字符串-请勿使用它(并报告错误)
  • 如果service / cliets API接受char数组,请使用它并清除它
  • 如果服务/ cliets API接受CharSequence,则可以使用java.nio.CharBuffer.wrap(array)并在之后清除

注意:不幸的是,不幸的是,甚至必须检查第三方服务/客户端初始化源代码,碰巧他们将char数组转换为代码深处的字符串...)-:明智地选择依赖项。