Search code examples
javaregexstringreplacereplaceall

Java: String.replaceAll(regex, replacement);


I have a string of comma-separated user-ids and I want to eliminate/remove specific user-id from a string.

I’ve following possibilities of string and expected the result

int elimiateUserId = 11;

String css1 = "11,22,33,44,55";
String css2 = "22,33,11,44,55";
String css3 = "22,33,44,55,11";
// The expected result in all cases, after replacement, should be:
// "22,33,44,55"

I tried the following:

String result = css#.replaceAll("," + elimiateUserId, "");  // # =  1 or 2 or 3
result = css#.replaceAll(elimiateUserId + "," , "");

This logic fails in case of css3. Please suggest me a proper solution for this issue.

Note: I'm working with Java 7

I checked around the following posts, but could not find any solution:


Solution

  • You can use the Stream API in Java 8:

    int elimiateUserId = 11;
    String css1 = "11,22,33,44,55";
    
    String css1Result = Stream.of(css1.split(","))
        .filter(value -> !String.valueOf(elimiateUserId).equals(value))
        .collect(Collectors.joining(","));
    
    // css1Result = 22,33,44,55