这是在 Java 中将 char 转换为 String 的首选方法吗? [重复]

问题描述 投票:0回答:1

在为返回

boolean
的函数编写单元测试时,需要两个
String
,我需要按顺序测试字母表中的每个字符 (
'a'
-
'z'
) 作为参数之一,逐一测试-一,所以我写这个来做到这一点:

for(char c = 'a'; c <= 'z'; c++)
{
    assertTrue(MyClass.MyFunction(testSubject, new String(c));
} 

我本以为这是允许的,但事实并非如此,所以我只是这样做了:

for(char c = 'a'; c <= 'z'; c++)
{
    assertTrue(MyClass.MyFunction(testSubject, ((Character) c).toString());
} 

这是在 Java 中将

char
转换为
String
的可靠方法吗?这是首选方式吗?我对 Java 不太了解,所以想对此进行一些澄清。

java string character
1个回答
36
投票

最短的解决方案:

char c = 'a';
String s = "" + c;

最干净(也可能是最有效的1)解决方案:

char c = 'a';

String s1 = String.valueOf(c);
// or
String s2 = Character.toString(c);

与您的方法相比,上述方法避免了将基元装箱到

Character
对象中的开销。


1 第一种方法中字符串连接的轻微低效可能会被编译器或运行时优化掉,因此(如果有人愿意的话)确实必须运行微基准测试来确定实际性能。像这样的微观优化很少值得付出努力,并且依靠串联来强制字符串转换看起来不太好。

© www.soinside.com 2019 - 2024. All rights reserved.