Apply a mask to StringTag(s): String/Number
JDK1.4
public class TestMF { public static String value = "A1234B567Z"; public static String mask = "A-AAAA-AAAA-A"; public static void main(String args[]) { try { System.out.println(formatString(value,mask)); // output : A-1234-B567-Z } catch (java.text.ParseException e) { e.printStackTrace(); } } public static String formatString(String string, String mask) throws java.text.ParseException { javax.swing.text.MaskFormatter mf = new javax.swing.text.MaskFormatter(mask); mf.setValueContainsLiteralCharacters(false); return mf.valueToString(string); } }
NOTE : Since this is Swing class, it is designed to be used in conjunction with a JFormattedTextField.
MaskFormatter format = new MaskFormatter("A##-##"); JFormattedTextField textField = new JFormattedTextField( format ); textField.setFocusLostBehavior(JFormattedTextField.COMMIT);
Character Description # Any valid number, uses Character.isDigit . ' Escape character, used to escape any of the special formatting characters. U Any character ( Character.isLetter ). All lowercase letters are mapped to upper case. L Any character ( Character.isLetter ). All upper case letters are mapped to lower case. A Any character or number ( Character.isLetter or Character.isDigit ) ? Any character ( Character.isLetter ). * Anything. H Any hex character (0-9, a-f or A-F).