String parsing – Java [closed]

Note: if you want to really do it right, you can implement a subclass of JTextField that doesn’t even let the user enter characters that are invalid floating-point numbers:

public class FloatField extends JTextField {

    public FloatField(int cols) {

    protected Document createDefaultModel() { 
        return new FloatDocument();

    static class FloatDocument extends PlainDocument {

        public void insertString(int offs, String str, AttributeSet a)
                          throws BadLocationException { 
            if( str == null ) 

            // Reject any string with invalid float characters.
            // TODO: this could be more sophisticated
            int len = str.length();
            for (int i = 0; i < len; ++i) {
                char c = str.charAt(i);
                if (c != '.' && c != '-' && !Character.isDigit(c))
            super.insertString(offs, str, a);

Note: this is an imperfect implementation for illustration purposes only, there are still many invalid floating-point numbers that this would allow to leak through.

Browse More Popular Posts

Leave a Comment