Solved

# scope of varibles & conversion

Posted on 2009-04-06
257 Views
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]);
%>

0
Question by:prk_usa
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 4

LVL 12

Expert Comment

ID: 24079354
0

LVL 12

Expert Comment

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

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]);
}
}
``````
0

LVL 12

Expert Comment

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

Question has a verified solution.

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

### Suggested Solutions

Fisheye tool 2 125
authenticate preemptively soap ui option 3 179
difference between projection and projection list in hibernate 1 129
equalIsNot  challenge 43 183
How many times a day do you open, acknowledge, or close an IT incident? What’s your process? Do you have a process depending on the incident, systems involved, and other factors? New Relic Alerts gives you options for how you interact with notifica…
Deploying our service is a grudge match between customer benefits and customer pain. In one corner, rolling out fixes (yay!) and delivering new features (double yay!). In the other corner, training on new features (boo – sounds like work), and chan…
Introduction to Processes
How to Install VMware Tools in Red Hat Enterprise Linux 6.4 (RHEL 6.4) Step-by-Step Tutorial
###### Suggested Courses
Course of the Month5 days, 15 hours left to enroll