단위 테스트를 수행 boolean
하는 데 2 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
에서 a 로 변환하는 신뢰할 수있는 방법 String
입니까? 선호되는 방법입니까? Java에 대해 많이 알지 못하므로 이에 대한 설명이 필요합니다.
답변
가장 짧은 해결책 :
char c = 'a';
String s = "" + c;
가장 깨끗하고 아마도 가장 효율적인 1 ) 솔루션 :
char c = 'a';
String s1 = String.valueOf(c);
// or
String s2 = Character.toString(c);
위의 방법은 접근 방식과 비교하여 프리미티브를 Character
객체 에 상자에 넣는 오버 헤드를 방지 합니다.
1 첫 번째 접근 방식에서 문자열 연결의 약간의 비 효율성은 컴파일러 또는 런타임에 의해 최적화 될 수 있으므로 실제 성능을 결정하기 위해 마이크로 벤치 마크를 실행해야합니다. 이와 같은 마이크로 최적화는 거의 노력할 가치가 없으며 문자열 변환을 강제하기 위해 연결에 의존하는 것은 그리 좋지 않습니다.