code: public static void replaceNonWordChars(StringValue string, char replacement) {
  		final char[] chars = string.getCharArray();
  		final int len = string.length();
  
  		for (int i = 0; i < len; i++) {
  			final char c = chars[i];
  			if (!(Character.isLetter(c) || Character.isDigit(c) || c == '_')) {
  				chars[i] = replacement;
  			}
  		}
  	}
docs: Replaces all non-word characters in a string by a given character. The only
  characters not replaced are the characters that qualify as word characters
  or digit characters with respect to {@link Character#isLetter(char)} or
  {@link Character#isDigit(char)}, as well as the underscore character.
  
  <p>This operation is intended to simplify strings for counting distinct words.
  
  @param string The string value to have the non-word characters replaced.
  @param replacement The character to use as the replacement.