source

null일 때 빈 문자열 가져오기

goodcode 2022. 9. 20. 23:58
반응형

null일 때 빈 문자열 가져오기

필드의 문자열 값을 가져오고 싶다(긴 문자열 유형 또는 임의의 개체일 수 있음).

필드가 null일 경우 빈 문자열이 반환됩니다.guava를 사용하여 이 작업을 수행했습니다.

nullToEmpty(String.valueOf(gearBox))
nullToEmpty(String.valueOf(id))
...

하지만 변속기가 null이면 null이 반환됩니다!value Of methdod가 오류를 발생시키는 문자열 "null"을 반환하므로 빈 문자열이 아닙니다.

아이디어 있어요?

EDIt: 100s 분야가 있습니다.실장하기 쉬운 것을 찾고 있습니다.

(Java 7에서는 표준)을 사용할 수 있습니다.

Objects.toString(gearBox, "")

Objects.toString(id, "")

링크된 문서:

public static String toString(Object o, String nullDefault)

호출 결과를 반환합니다.toString첫 번째 인수가 늘이 아닌 경우 첫 번째 인수로, 그렇지 않은 경우 두 번째 인수가 반환됩니다.

파라미터:
o- 객체
nullDefault- 첫 번째 인수가 다음과 같은 경우 반환되는 문자열null

반품:
호출 결과toString그렇지 않다면 첫 번째 의론에서null그렇지 않으면 두 번째 인수를 사용합니다.

참고 항목:
toString(Object)

Java 8의 경우 옵션 접근 방식을 사용할 수 있습니다.

Optional.ofNullable(gearBox).orElse("");
Optional.ofNullable(id).orElse("");

Apache Commons를 사용해도 괜찮으시다면, 이 기능을 하는 가 있습니다.

전달된 문자열 중 하나를 반환하거나 문자열이 늘인 경우 빈 문자열("")을 반환합니다.

만약 당신도 이 모든 것을 없애고 싶다면"null", 다음을 수행할 수 있습니다.

StringUtils.defaultString(str).replaceAll("^null$", "")

또는 대소문자를 무시하려면:

StringUtils.defaultString(str).replaceAll("^(?i)null$", "")

대체 방법인 경우, Guava는 다음을 제공합니다.Strings.nullToEmpty(String).

소스 코드

String str = null;
str = Strings.nullToEmpty(str);
System.out.println("String length : " + str.length());

결과

0

인라인 늘 검사 사용

gearBox == null ? "" : String.valueOf(gearBox);

StringUtils.defaultString(String str)전달된 문자열 중 하나를 반환하거나 문자열이 늘인 경우 빈 문자열("")을 반환합니다.

java doc의 예

StringUtils.defaultString(null)돌아온다"" StringUtils.defaultString("")돌아온다"" StringUtils.defaultString("bat")돌아온다"bat"

guava를 사용하는 경우:

Objects.firstNonNull(gearBox, "").toString();

Java 9+에서는 Objects.requireNonNullElse(obj, defaultObj) https://docs.oracle.com/javase/9/docs/api/java/util/Objects.html#requireNonNullElse-T-T- 를 사용합니다.

//-- returns empty string if obj is null
Objects.requireNonNullElse (obj, "")   

언급URL : https://stackoverflow.com/questions/21936503/get-empty-string-when-null

반응형