Re: String of numbers into to array of numbers
bH wrote:
import javax.swing.*;
Import-single is favored over import-on-demand. (Single-class imports
over "star".)
public class Whatsup extends JFrame {
This class says it's a 'JFrame', but it doesn't do anything 'JFrame'y.
JPanel infoPanel= new JPanel();
// unused
void Whatsup() {
Do NOT name methods the same as constructors! Bad!
String cStr, qStr = "";
Declare 'qStr' in narrower scope. Don't initialize to values never
used.
//a string with no spaces in between.
cStr = "84,104,101,32,67,108,111,99,10";
Declare and initialize together:
final String cStr = "84,104,101,32,67,108,111,99,10";
Oh, and including type in variable names, as with the 'Str' portion of
the name, is usually a bad idea.
// first count a number needed for the array
Don't run through the loop twice. 'ArrayList' gives you a way, the
suggested use of 'String#split()' is even better. Why re-invent the
wheel?
like this:
String [] inVals = cStr.split( "[ ,]" );
Integer [] values = new Integer [ inVals.length ];
// parse for ints
for ( int i = 0; ia < cStr.length; ia++ ) // more whitespace
// ^ no parentheses
{
try
{
values [i] = Integer.valueOf( inVals [i] );
}
catch ( NumberFormatException exc )
{
values [i] = null;
System.err.println( "Not an integer: \"+ inVals [i] +"\"" );
}
}
Another way:
List <Integer> numbers = new ArrayList <Integer> ();
for ( String inVal : cStr.split( "[ ,]" ) )
{
try
{
numbers.add( Integer.valueOf( inVals [i] ));
}
catch ( NumberFormatException exc )
{
System.err.println( "Not an integer: \"+ inVals [i] +"\"" );
}
}
// are these numbers?
What exactly are you aiming to accomplish with this block of code?
System.out.println("Integer Data x 2");
for (int ib = 0;ib<=t;ib++){
sho = cInt[ib]*2;
System.out.println(sho);
}
}
public static void main(String[] args)
{
new Whatsup().Whatsup();
}
}
OK, this is just whacky. You define no constructor for the 'Whatsup'
class, then you define a method with the same name as the class, then
you use the default constructor with the whacky method.
Just declare a constructor, if you need to, and never, ever name a
method the same as a constructor.
Besides, method names are supposed to start with a lower-case letter,
class names with an upper-case letter. If you follow the convention,
then automatically you'll never, ever name a method the same as a
constructor.
Although, too, it's bad to name a method the same as a constructor
except for case. That makes sense for a variable, but not a method.
--
Lew