Skip to content

Commit 8a897a1

Browse files
committed
feat(TokenizerDemo): demonstrate StringTokenizer with different delimiters
What - Added `TokenizerDemo` class showing multiple delimiter use cases with `StringTokenizer`. - Supports parsing key-value pairs separated by `;`, `\n`, or spaces. - Demonstrates behavior when only `=` is specified as a delimiter vs multiple delimiters. Why - To illustrate how `StringTokenizer` handles delimiters in real-world text parsing scenarios. - Helps understand default whitespace handling (space, tab, newline). - Useful for parsing config files, logs, or simple structured input. How - Declared sample `data` strings with `;`, `\n`, or space as separators. - Created `StringTokenizer` with delimiters `"="` (Example B) or `"=;"` (Example A). - Iterated over tokens with `hasMoreTokens()` and `nextToken()`. - Printed each token to verify splitting behavior. Logic - `StringTokenizer` breaks the input string into tokens based on specified delimiters. - If no delimiter provided, default delimiters = whitespace characters. - Tokens are sequentially retrieved until no more remain. Real-life applications - Splitting config or `.properties` file content (`key=value`). - Parsing command-line or user input strings. - Tokenizing logs or metadata separated by `;`, newline, or spaces. Summary - `TokenizerDemo` shows how to tokenize strings with custom delimiters. - Demonstrates default whitespace handling. - Practical for learning string parsing using `StringTokenizer`. Signed-off-by: https://github.com/Someshdiwan <someshdiwan369@gmail.com>
1 parent 3bdbe95 commit 8a897a1

2 files changed

Lines changed: 68 additions & 30 deletions

File tree

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package Package2;
2+
3+
import java.util.StringTokenizer;
4+
5+
public class ToenizerDemo {
6+
public static void main(String[] args) {
7+
// Example 1: Using semicolon (;) as delimiter between pairs
8+
// String data = "name=Vijay; address=delhi; country=india; dept=cse";
9+
10+
// Example 2: Using newline (\n) as delimiter between pairs
11+
String data = "name=Vijay\naddress=delhi\ncountry=india\ndept=cse";
12+
13+
// Example 3: Using space as a delimiter between pairs
14+
// String data = "name=Vijay address=delhi country=india dept=cse";
15+
16+
// Creating StringTokenizer
17+
// Example A: Using "=" and ";" as delimiters
18+
// StringTokenizer stk = new StringTokenizer(data, "=;");
19+
20+
// Example B: Using "=" only as a delimiter
21+
StringTokenizer stk = new StringTokenizer(data, "=");
22+
23+
// Note: In Example 2, "\n" also acts as a delimiter automatically
24+
// because StringTokenizer treats whitespace characters (space, tab, newline) as default delimiters
25+
// unless explicitly told otherwise.
26+
27+
// Extracting tokens
28+
String s;
29+
while (stk.hasMoreTokens()) {
30+
s = stk.nextToken(); // fetches next token
31+
System.out.println(s);
32+
}
33+
}
34+
}
35+
36+
/*
37+
1. Input String
38+
- The string contains structured key-value pairs separated by delimiters.
39+
- Example: "name=Vijay; address=delhi; country=india; dept=cse"
40+
41+
2. Delimiters
42+
- Characters like '=', ';', '\n', or space are used to break the string.
43+
- "=" → separates keys from values.
44+
- ";" → separates multiple key-value pairs.
45+
- "\n" → separates pairs by newlines.
46+
- If no delimiters are explicitly given, StringTokenizer uses default (whitespace).
47+
48+
3. StringTokenizer Object
49+
- Constructor: StringTokenizer(String str, String delimiters)
50+
- It scans the string and splits it into tokens based on the provided delimiters.
51+
52+
4. Methods
53+
- hasMoreTokens() → returns true if more tokens are available.
54+
- nextToken() → returns the next token.
55+
- countTokens() → returns number of tokens left.
56+
57+
5. Example Outputs
58+
- For data = "name=Vijay; address=delhi"
59+
- With delimiters "=;" → tokens: [name, Vijay, address, delhi]
60+
- With delimiter "=" → tokens: [name, Vijay; address, delhi]
61+
(because ";" is treated as part of value if not given as delimiter)
62+
63+
6. Important Notes
64+
- Tokens are sequentially extracted; order matters.
65+
- Delimiters themselves are not returned (unless explicitly configured).
66+
- StringTokenizer is simple but considered **legacy** (since JDK 1.0).
67+
- Modern alternatives: `String.split(regex)` or `Scanner`.
68+
*/

Section25CollectionFramework/src/StringTokenizerDemo/ToenizerDemo.java

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)