Parsing String
Hi all,
I have a text file that needs to be parsed. The input is like:
Air Cleaners|Purifiers
Amusement Parks|Attractions
Antiques|Collectibles
I need to parse it based on "|" pattern, so the output sould be like:
"Air Cleaners", "Purifiers"
"Amusement Parks" , "Attractions"
"Antiques", "Collectibles"
I have the following code:
publicstatic ArrayList parse(String filename)
{
ArrayList parsedFields =null;
try
{
BufferedReader in =new BufferedReader(new FileReader(filename));
String str;
while ((str = in.readLine()) !=null)
{
String patternStr ="|";
String[] fields = str.split(patternStr);
for (int a = 0; a < fields.length; a++)
{
System.out.println("fields array = " + fields[a]);
}
// Trim the fields in String[] and make them lowercase
for (int a = 0; a < fields.length; a++)
{
fields[a] = fields[a].trim();
fields[a] = fields[a].toLowerCase();
}
}// while
in.close();
}// try
catch (Exception e)
{
e.printStackTrace();
}
return parsedFields;
}// parse()
When I ran the code with the input file that I have, I noticed that the patternStr is considered space and not "|". This is part of output:
fields array =
fields array = A
fields array = i
fields array = r
fields array =
fields array = C
fields array = l
fields array = e
fields array = a
fields array = n
fields array = e
fields array = r
fields array = s
fields array = |
fields array = P
fields array = u
fields array = r
fields array = i
fields array = f
fields array = i
fields array = e
fields array = r
fields array = s
Does any body have any idea why its happening? Any help is greatly appreciated.

