### Question:
TextUtil { public static String replaceString( final String orig, final String src, final String dest ) { if ( orig == null ) { return null; } if ( src == null || dest == null ) { throw new NullPointerException(); } if ( src.length() == 0 ) { return orig; } final StringBuilder res = new StringBuilder( orig.length() + 20 ); int start; int end = 0; int last = 0; while ( ( start = orig.indexOf( src,end ) ) != -1 ) { res.append( orig.substring( last, start ) ); res.append( dest ); end = start + src.length(); last = start + src.length(); } res.append( orig.substring( end ) ); return res.toString(); } private  TextUtil(); static String urlEncodeUTF8( final String text ); static String urlDecodeUTF8( final String utf8 ); static String urlEncode( final String data, final String encoding ); static String urlDecode( final String data, final String encoding ); static String replaceEntities( String src ); static String replaceString( final String orig, final String src, final String dest ); static String replaceString( final String orig, final int start, final int end, final String text ); static String replaceStringCaseUnsensitive( final String orig, final String src, final String dest ); static int parseIntParameter( final String value, final int defvalue ); static int getIntegerProperty( final Properties props, final String key, final int defVal ); static boolean getBooleanProperty( final Properties props, final String key, final boolean defval ); static String getStringProperty( final Properties props, final String key, final String defval ); static String getRequiredProperty( final Properties props, final String key ); static String getCanonicalFilePathProperty( final Properties props, final String key, final String defval ); static boolean isPositive( String val ); static String normalizePostData( final String postData ); static String beautifyString( final String s ); static String beautifyString( final String s, final String space ); static String cleanString( String text, final String allowedChars ); static Properties createProperties( final String[] values ); static int countSections( final String pagedata ); static String getSection( final String pagedata, final int section ); static String repeatString( final String what, final int times ); static String native2Ascii( final String s ); static String toHexString( final byte[] bytes ); static boolean isNumber( String s ); static String generateRandomPassword(); static final int PASSWORD_LENGTH; static final String LEGACY_CHARS_ALLOWED; static final String PUNCTUATION_CHARS_ALLOWED; }### Answer:
@Test public void testReplaceString1() { final String text = "aabacaa"; Assertions.assertEquals( "ddbacdd", TextUtil.replaceString( text, "aa", "dd" ) ); }
@Test public void testReplaceString4() { final String text = "aabacaafaa"; Assertions.assertEquals( "ddbacddfdd", TextUtil.replaceString( text, "aa", "dd" ) ); }
@Test public void testReplaceString5() { final String text = "aaabacaaafaa"; Assertions.assertEquals( "dbacdfaa", TextUtil.replaceString( text, "aaa", "d" ) ); }
@Test public void testReplaceString2() { final String text = "abcde"; Assertions.assertEquals( "fbcde", TextUtil.replaceString( text, "a", "f" ) ); }
@Test public void testReplaceString3() { final String text = "ababab"; Assertions.assertEquals( "afafaf", TextUtil.replaceString( text, "b", "f" ) ); }