This week's giveaway is in the EJB and other Java EE Technologies forum.
We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes String Tokenizer -  Unable to get the Proper Output Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "String Tokenizer -  Unable to get the Proper Output" Watch "String Tokenizer -  Unable to get the Proper Output" New topic
Author

String Tokenizer - Unable to get the Proper Output

shivamahesh bachu
Greenhorn

Joined: Sep 14, 2012
Posts: 13
Hi Guys,

i am getting wrong output


Expected output:-

f:\a\c\

actual output :-

a\c\
Jelle Klap
Bartender

Joined: Mar 10, 2008
Posts: 1666
    
    7

It makes sense when you realize what happens in the if-else construct.
In the first iteration, what do you think the nextElement() call in the if-condition returns, and how does it affect the current position of the StringTokenizer? Likewise, what would the effect of the nextToken() call in the else-body be?


Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36486
    
  16
Why are you using a tokenizer at all? Have you read its documentation?
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65


Now when you run this program,
if (st.nextElement().equals("d"))

if block will advance the tokenizer to next token i.e from f->a then again from b->c that is the reason you are getting output as a\c\, never think compiler is wrong.!
and according to you if you are not concentrating on if block then expected output should be f:\a\b\c


scjp 6
http://algorithmsea.blogspot.com
shivamahesh bachu
Greenhorn

Joined: Sep 14, 2012
Posts: 13
Campbell Ritchie wrote:Why are you using a tokenizer at all? Have you read its documentation?



Why do we use a tokenizer ?

check out java docs ....
shivamahesh bachu
Greenhorn

Joined: Sep 14, 2012
Posts: 13
vikky agrawal wrote:

Now when you run this program,
if (st.nextElement().equals("d"))

if block will advance the tokenizer to next token i.e from f->a then again from b->c that is the reason you are getting output as a\c\, never think compiler is wrong.!
and according to you if you are not concentrating on if block then expected output should be f:\a\b\c




Mr. vikky agrawal,

Thanks for your explanation
anyways i have resolved it long back.

I did this:-

import java.util.StringTokenizer;

public class Tok {

public static void main(String args[]) {

String source = "f:\\a\\b\\c\\d\\e";
StringTokenizer st = new StringTokenizer(source, "\\");

String da = "";
try{
while (st.hasMoreTokens()) {

String ss = st.nextToken();

// System.out.println("Tokens "+st.nextToken());

if (ss.equals("d"))
{
//System.out.println("Entered with d");
break;
}
else{
da = da + ss + "\\";
}


}
}
catch(Exception e)
{
e.getMessage();
}


System.out.println(da);


}
}


My Output Was :-


f:\a\b\c\
vikky agrawal
Ranch Hand

Joined: Dec 18, 2008
Posts: 65
Mr. vikky agrawal,

Thanks for your explanation
anyways i have resolved it long back


That is good, but I gave the explanation for the understanding of the reason that why output was not according to your expectation, hope this helps.
Enjoy
Winston Gutkowski
Bartender

Joined: Mar 17, 2011
Posts: 7052
    
  16

shivamahesh bachu wrote:Why do we use a tokenizer ?
check out java docs ....

He has. Specifically the part that says: "StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code."

That's why Campbell asked the question. And if he hadn't, I would have.

Winston


Isn't it funny how there's always time and money enough to do it WRONG?
Artlicles by Winston can be found here
shivamahesh bachu
Greenhorn

Joined: Sep 14, 2012
Posts: 13
Winston Gutkowski wrote:
shivamahesh bachu wrote:Why do we use a tokenizer ?
check out java docs ....

He has. Specifically the part that says: "StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code."

That's why Campbell asked the question. And if he hadn't, I would have.

Winston





Mr. Winston ,

but he should be specific like you did.

Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 36486
    
  16
shivamahesh bachu wrote: . . . but he should be specific like you did.

No, we expect you to be able to read the documentation.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: String Tokenizer - Unable to get the Proper Output
 
Similar Threads
ch-assignment in kb ,need explanation of output:question 10
Copy name of file from input to output
Question 10 capitulo 3 kathy sierra book
reading an CSV file