How to Remove All Exclamation Marks From a String in Java


The challenge

Write function RemoveExclamationMarks which removes all exclamation marks from a given string.

The solution in Java code

Option 1:

class Solution {
    static String removeExclamationMarks(String s) {
        return s.replaceAll("!", "");
    }
}

Option 2:

class Solution {
    static String removeExclamationMarks(String s) {
        return s.replace("!", "");
    }
}

Test cases to validate our solution in Java

import org.junit.Test;
import java.util.Random;
import java.util.stream.*;
import static org.junit.Assert.assertEquals;

public class SolutionTest {

    @Test
    public void testSimpleString1() {
        assertEquals("Hello World", Solution.removeExclamationMarks("Hello World!"));
    }
    
    @Test
    public void testSimpleString2() {
        assertEquals("Hello World", Solution.removeExclamationMarks("Hello World!!!"));
    }
    
    @Test
    public void testSimpleString3() {
        assertEquals("Hi Hello", Solution.removeExclamationMarks("Hi! Hello!"));
    }
    
    @Test
    public void testRandomString() {
        String rs = String.format("%s!%s %s!%s", randomString(), randomString(), randomString(), randomString());
        assertEquals(solution(rs), Solution.removeExclamationMarks(rs));
    }
    
    private String randomString() {
        Random random = new Random();
        String abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZbcdefghijklmnopqrstuvwxyz";
        return IntStream.range(0, 10)
                        .mapToObj(__ -> (char) abc.charAt(random.nextInt(abc.length())))
                        .map(String::valueOf)
                        .collect(Collectors.joining(""));
    }
    
    private String solution(String s) {
        return s.replaceAll("!", "");
    }
}