Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Java > Upper Case Conversion Required

Reply
Thread Tools

Upper Case Conversion Required

 
 
Richard F.L.R.Snashall
Guest
Posts: n/a
 
      09-08-2006
I wrote the code snip below to do some extra checking on string to
double conversion. I did not expect the need to call toUpperCase.
What was I not anticipating? It just didn't seem logical to me,
given the number of tools out there that create their floating point
numbers with a lower case "e".

-------------------------

private java.util.Locale myLocale =
java.util.Locale.getDefault( );

private java.text.NumberFormat DFormat =
java.text.NumberFormat.getInstance( myLocale );
private java.text.ParsePosition DPosition =
new java.text.ParsePosition( 0 );

public double DparseDouble( String S ) throws NumberFormatException
{
// Trim it and check for a blank string.
// Upper case is needed to match the "E" in scientific notation.

String T = S.trim( ).toUpperCase( );
if( T.length( ) == 0 )
{
throw new NumberFormatException( );
}

// Otherwise, try to parse it.

DPosition.setIndex( 0 );
Number parsedNumber = DFormat.parse( T, DPosition );

// Failure will occur if none or only a part of the string
// is properly parsed.

if( DPosition.getIndex( ) < T.length( ) )
{
throw new NumberFormatException( );
}

return parsedNumber.doubleValue( );
}
 
Reply With Quote
 
 
 
 
Manish Pandit
Guest
Posts: n/a
 
      09-09-2006
Couldnt help but ask - Why go through all this to convert a string to a
double? You can do the same by new Double(yourString).doubleValue() or
Double.valueOf(yourString).doubleValue().

Is this that you are trying to parse out a double from an alphanumeric
string, or you need the double in a special format (like with a
lowercase e) ?

-cheers,
Manish

Richard F.L.R.Snashall wrote:
> I wrote the code snip below to do some extra checking on string to
> double conversion. I did not expect the need to call toUpperCase.
> What was I not anticipating? It just didn't seem logical to me,
> given the number of tools out there that create their floating point
> numbers with a lower case "e".
>
> -------------------------
>
> private java.util.Locale myLocale =
> java.util.Locale.getDefault( );
>
> private java.text.NumberFormat DFormat =
> java.text.NumberFormat.getInstance( myLocale );
> private java.text.ParsePosition DPosition =
> new java.text.ParsePosition( 0 );
>
> public double DparseDouble( String S ) throws NumberFormatException
> {
> // Trim it and check for a blank string.
> // Upper case is needed to match the "E" in scientific notation.
>
> String T = S.trim( ).toUpperCase( );
> if( T.length( ) == 0 )
> {
> throw new NumberFormatException( );
> }
>
> // Otherwise, try to parse it.
>
> DPosition.setIndex( 0 );
> Number parsedNumber = DFormat.parse( T, DPosition );
>
> // Failure will occur if none or only a part of the string
> // is properly parsed.
>
> if( DPosition.getIndex( ) < T.length( ) )
> {
> throw new NumberFormatException( );
> }
>
> return parsedNumber.doubleValue( );
> }


 
Reply With Quote
 
 
 
 
Richard F.L.R.Snashall
Guest
Posts: n/a
 
      09-09-2006
Manish Pandit wrote:
> Couldnt help but ask - Why go through all this to convert a string to a
> double? You can do the same by new Double(yourString).doubleValue() or
> Double.valueOf(yourString).doubleValue().
>
> Is this that you are trying to parse out a double from an alphanumeric
> string, or you need the double in a special format (like with a
> lowercase e) ?
>


It is user input. I need to (for my own piece of mind) be sure that the
user has input "a double, a whole double, and nothing but a double"

Most of the internal routines didn't seem to fit the bill. Lower case
"e" was just [to me] a user-friendly allowance.
 
Reply With Quote
 
Manish Pandit
Guest
Posts: n/a
 
      09-09-2006
Hi,

You should be okay if the user enters a 'e' or an 'E'. For example,
Double.valueOf("1.23456789e9").doubleValue() will return 1.23456789E9
and so will Double.valueOf("1.23456789E9").doubleValue().

Maybe I am missing something again..

Also, just a tip regarding null-proofing the blank check for the string
- you might want to check for null before trimming it - more like if (
S !=null && S.trim().length() >0 ){ .... }

-cheers,
Manish

Richard F.L.R.Snashall wrote:
> Manish Pandit wrote:
> > Couldnt help but ask - Why go through all this to convert a string to a
> > double? You can do the same by new Double(yourString).doubleValue() or
> > Double.valueOf(yourString).doubleValue().
> >
> > Is this that you are trying to parse out a double from an alphanumeric
> > string, or you need the double in a special format (like with a
> > lowercase e) ?
> >

>
> It is user input. I need to (for my own piece of mind) be sure that the
> user has input "a double, a whole double, and nothing but a double"
>
> Most of the internal routines didn't seem to fit the bill. Lower case
> "e" was just [to me] a user-friendly allowance.


 
Reply With Quote
 
Richard F.L.R.Snashall
Guest
Posts: n/a
 
      09-09-2006
Manish Pandit wrote:
> Hi,
>
> You should be okay if the user enters a 'e' or an 'E'. For example,
> Double.valueOf("1.23456789e9").doubleValue() will return 1.23456789E9
> and so will Double.valueOf("1.23456789E9").doubleValue().
>
> Maybe I am missing something again..
>


I was using Double.parseDouble. According to the documentation:

"static double parseDouble(String s)
Returns a new double initialized to the value represented by
the specified String, as performed by the valueOf method of class Double."

That failed to work properly when the user input "e".

> Also, just a tip regarding null-proofing the blank check for the string
> - you might want to check for null before trimming it - more like if (
> S !=null && S.trim().length() >0 ){ .... }


I'll keep that in mind.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Emacs, VHDL Mode - Upper Case Enum Values & Upper Case Constants (not working)? BlackHelicopter VHDL 0 01-31-2013 04:12 AM
Regular Expression to Replace UPPER Case Text with lower case text penny Perl Misc 28 03-10-2008 01:14 AM
help with upper and lower case conversion B Williams C++ 9 12-19-2006 02:58 PM
lower case to upper case Janice C Programming 17 12-14-2004 02:35 PM
Regular expression weirdness with upper and lower case semovrs@concord.edu Perl 4 12-07-2004 01:35 PM



Advertisments