Solved

scope of varibles & conversion

Posted on 2009-04-06
4
255 Views
Last Modified: 2012-05-06
Hi All,
I have a variable as shown below:
String curVal=request.getParameter("curVal");
// values are like -> only 4 (or)  only 4, 5 (or)  only  4,  5,  6
so now I want to store this values in array, so lets think values in "curVal -> 4,  5,  6"
 int items[] = new int[4];
 java.util.StringTokenizer st = null;
   if(curVal.length() > 0)
   {
      st = new java.util.StringTokenizer(curVal,",");
   }
        int j;
       for(j=0;j<4;j++)
       {
          while(st.hasMoreTokens())
             {
                  items[j]= Integer.parseInt(st.nextToken());
                  System.out.println("array :"+items[j]);
             }
       }
            // now I am expecting  4, 5,6,0 in array in the below statements, but I am getting 6,0,0,0 why?
            System.out.println("array 0:"+items[0]);
            System.out.println("array 1:"+items[1]);
            System.out.println("array 2:"+items[2]);
            System.out.println("array 3:"+items[3]);
%>

Thanks in advance.
0
Comment
Question by:prk_usa
  • 4
4 Comments
 
LVL 12

Expert Comment

by:basav_com
ID: 24079354
0
 
LVL 12

Expert Comment

by:basav_com
ID: 24079500
Here you messed up the code.

                   for(j=0;j<4;j++)
                   {
                      while(st.hasMoreTokens())
                         {
                              items[j]= Integer.parseInt(st.nextToken());
                              System.out.println("array :"+items[j]);
                         }
                   }
0
 
LVL 12

Accepted Solution

by:
basav_com earned 500 total points
ID: 24079548
Take a look at this example:

output:
array :4
array :5
array :6
array 0:4
array 1:5
array 2:6
array 3:0
public class SampleStringTest {
	public static void main(String args[]){
		//String curVal=request.getParameter("curVal");
		String curVal = "4,5,6";
        //		 values are like -> only 4 (or)  only 4, 5 (or)  only  4,  5,  6
		//so now I want to store this values in array, so lets think values in "curVal -> 4,  5,  6"
		 int items[] = new int[4];
		 java.util.StringTokenizer st = null;
		   if(curVal.length() > 0)
		   {
		      st = new java.util.StringTokenizer(curVal,",");
		   }
		        int j=0;
 
		          while(st.hasMoreTokens())
		             {
		                  items[j]= Integer.parseInt(st.nextToken());
		                  System.out.println("array :"+items[j]);
		                  j++;
		             }
		
		            // now I am expecting  4, 5,6,0 in array in the below statements, but I am getting 6,0,0,0 why?
		            System.out.println("array 0:"+items[0]);
		            System.out.println("array 1:"+items[1]);
		            System.out.println("array 2:"+items[2]);
		            System.out.println("array 3:"+items[3]); 
	}
}

Open in new window

0
 
LVL 12

Expert Comment

by:basav_com
ID: 24079601
Your code is messed up because you are looping again using the for loop.  You have alread used while(st.hasMoreTokens) to loop thru all the tokens and you actually stored everything in the
items[0] element only.
  while(st.hasMoreTokens())
                         {
                              items[j]= Integer.parseInt(st.nextToken());
                              System.out.println("array :"+items[j]);    ---------------> Print j also here. Then you will understand.
                                                     
                                              }

And then again looped the array again using for loop.


So look at my code, I simply removed the for loop and stored the elements in items[0] to items[2] using the while loop and by incrementing 'j' each time.

Ask me more if you don't understand the explanation :)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Adjusting width and height of dropdown produced using select n option HTML tags 4 81
maven j2ee examles 2 60
maven webservice example issue 2 144
print map entry 34 72
Businesses who process credit card payments have to adhere to PCI Compliance standards. Here’s why that’s important.
With User Account Control (UAC) enabled in Windows 7, one needs to open an elevated Command Prompt in order to run scripts under administrative privileges. Although the elevated Command Prompt accomplishes the task, the question How to run as script…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

789 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question