有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在Java中,这是将字符转换为字符串的正确方法吗?

在为返回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了解不多,所以我想澄清一下


共 (1) 个答案

  1. # 1 楼答案

    最短的解决方案:

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

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

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

    与您的方法相比,上述方法避免了必须将原语装箱到Character对象中的开销


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