0

Code:

public class StringBuffer_Filtering_data 
{
    public static void main(String[] args) 
    {
        String [] records={
                 "1001.ajay.manager.account.45000.male.38",
                 "1002.aiswrya.clerk.account.25000.female.30",
                 "1003.varun.manager.sales.50000.male.35",
                 "1004.amit.manager.account.47000.male.40",
                 "1005.kareena.executive.sales.15000.female.24",
                 "1006.deepak.clerk.sales.23000.male.30",
                 "1007.sunil.accountant.sales.13000.male.29",
                 "1008.satvik.director.purchase.80000.male.45"
                 }; 
        StringBuffer sb=new StringBuffer(255);
        for(String record:records)
        {
            String[] fields=record.split(".");
            if(fields[2].equals("manager"))
            {
                System.out.println(record);
            }
        }
        

    }
}

Expected output:

1001,ajay,manager,account,45000,male,38
1003,varun,manager,sales,50000,male,35
1004,amit,manager,account,47000,male,40

Anonymous
  • 835
  • 1
  • 5
  • 21

1 Answers1

2

split's argument is a regular expression (regex), not a plain old string. In the context of a regex, . is a special character while means "any character". If you want to split the string by the literal ., you'll need to escape it:

String[] fields=record.split("\\.");
// Here ----------------------^^
Mureinik
  • 297,002
  • 52
  • 306
  • 350