2014-09-18 4 views
2

작은 문제가 있지만 해결하기가 어렵습니다.null 문자열을 빈 문자열로 대체

||으로 작성되고 구분 된 일부 객체의 속성 모음 인 String을 만들었습니다. 하지만 null 속성이있을 때마다 null이라는 문자가 계속 인쇄되므로 null을 빈 문자열로 바꾸고 싶습니다.

string.replace(null,"") 
string.replace("null","") 

수있는 사람 : 그것은 내가이 두 가지를 시도

ADS||abc|||| 

가 될 수 있지만, 작동하지 않았다 입력

ADS||abc||null||null 

내가 원하는에 대한 예를 들어

, 도와주세요?

+2

아니, 그것은 || NULL이어야합니다 || |||| – Nico

+4

문자열을'replace()'의 결과로 설정 했습니까? 예 : 'String = string.replace ("null", "")'(문자열은 불변이므로이 작업을 수행해야합니다.) – August

+1

위에서 언급 한 것처럼, Java'String' 객체는 ** immutable **입니다. 기존의 문자열을 기반으로 새로운 문자열을 만들 수는 있지만 기존의 문자열 자체를 변경할 수는 없습니다. –

답변

4

문자열이 불변이므로 replace 메서드의 결과에 String 변수를 할당해야합니다.

String str = "ADS||abc||null||null to become ADS||abc||||"; 
str = str.replace("null", ""); 
System.out.println(str); 

출력 :

ADS||abc|||| to become ADS||abc|||| 
2

당신이 코드 아래 의미합니까?

String[] names = new String("ADS||abc||null||null to become ADS||abc||||").split("\\|\\|"); 
List<String> list = new ArrayList<>(); 
for (String name : names) { 
    list.add(name.replace("null", "")); 
} 
+2

감사합니다! 이것은 그것을하는 또 다른 방법이며, 그것은 작동합니다! – Nico

1

잘 작동합니다.

public static void main(String[] args) { 
     String s = "ADS||abc||null||null"; 
     s = s.replace("null", ""); 
     System.out.println(s); 
    } 

출력

ADS||abc|||| 
2

당신은 해당 문자열이 코드에 이것을 추가 불변 잊었 :

String string = string.replace("null",""); 
관련 문제