[Java] Stream 사용하여 String 이 null이 아닐 경우 concat(joining) 수행하기

반응형
728x90
반응형

상황

휴대폰번호 010 - 1234 - 5678 번호의 3가지가 각 객체로 존재한다.

String front = "010";

String middle = "1234";

String back = "5678";

위 3가지 객체를 붙여서 hpno 객체를 완성한다.

String hpno = front + middle + back;

여기에 문제점이 존재한다. front, middle, back 변수 중 null 값이 존재한다면 "null"로 그대로 완성된다.

String hpno = front + middle + back;
// middle 이 null일 경우
log.info(hpno); // "010null1234"

 

 

해결방안

front, middle, back 각 객체의 null 체크를 하여 if-else로 처리할 수도 있다. 하지만 객체의 개수가 많아질수록 코드가 길어진다.

String hpno = "";

if (front != null) {

} 

if (middle != null) {

}

if (back != null) {

}

이를 Stream 을 사용하여 해결해보자.

String front = "010";
String middle = null;
String back = "5678";


String hpno = Stream.of(front, middle, back)
                    .filter(Objects::nonNull)
                    .collect(Collectors.joining());

 

결과

0105678

 

 

반응형

Designed by JB FACTORY