How to move the specific column in CSV to first column using java

Hi I want to move the specific column with values to the first column in CSV. will it be possible using java code
ex:
COLUMN1 COLUMN2 COLUMN3
a1             b1              c1
a2             b2              c2
a2             b3              c3

and i want to be
if(col[i].equals("COLUMN3"))

COLUMN3 COLUMN2 COLUMN3
c1             b1             a1
c2             b2             a2
c3            b3              a3


I am using following code to read csv

BufferedReader csvReader;
            csvReader = new BufferedReader(new
                    FileReader(csvFileName));
            int fieldCount = 0;
            String[] csvFields = null;
            StringTokenizer stringTokenizer = null;
 
String curLine = csvReader.readLine();
            if(curLine != null)
            {
                stringTokenizer = new StringTokenizer(curLine, ",");
                fieldCount = stringTokenizer.countTokens();
                if(fieldCount > 0)
                {
                    csvFields = new String[fieldCount];
                    int i=0;
                    while(stringTokenizer.hasMoreElements()){
                        csvFields[i++] =
                                String.valueOf(stringTokenizer.nextElement());
             
                    }
                }
            }
            
            for(int i=0;i<csvFields.length;i++){
            	String csvField=csvFields[i].toUpperCase();
            	csvFields[i]=csvField.replaceAll(" ","_");
            	if(csvFields[i].equals("ETHNIC_ORIGIN")){
            		
            	}
            	
            }
 
            while((curLine = csvReader.readLine()) != null)
            {
            	String strArr[] = curLine.split(",");
            	String result ="";
            	 String temp ="";
            	for ( int i =0 ;i<strArr.length;i++)
            	{
            	  if( strArr[i].equals(""))
            	    temp = "(Blanks),";
            	 else
            	    temp = strArr[i] + ",";
            	result = result +  temp;
            	}
            	
            	curLine=result;
            	
            	int pp = 0;
            	  while (true) {
            	    int found = curLine.indexOf("\"", pp);
            	    if (found == -1) break;
            	    int start = found + 1; // start of actual quote
            	    int end = curLine.indexOf("\"", start);
            	    
            	    String str1=curLine.substring(start, end);
            	    str1=str1.replaceAll(",","");
            	    String str2="";
            	    str2=curLine.substring(end+1, curLine.length());
            	    
            	    if(found!=0){
            	    	curLine=curLine.substring(0, start-1)+str1+str2;
            	    	
            	    }
            	    else{
            	     	curLine=str1+str2;
            	        
            	    }
            	    pp = end + 1;  // advance i to start the next iteration
            	  }
				
                stringTokenizer = new StringTokenizer(curLine, ",");
------

Open in new window

ramadevimandalaAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CEHJCommented:
I would use a proper CSV api such as Ostermiller but all you need to do is to swap the columns in the array
0
CEHJCommented:

String temp = array[2];
array[2] = array[0];
array[0] = temp;

Open in new window

0
Mick BarryJava DeveloperCommented:
simplest would be to use a loop to switch the columns once it is read
another option would be too use a Map for your columns making them easily accessible
depends on your requirements

let me know if you need help with it

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

ramadevimandalaAuthor Commented:
Hi,
Thank you for ur help , I am trying to loop thru columns and swapping the values, let me try once this
0
Mick BarryJava DeveloperCommented:
no worries, should be around for a few hours of you get stuck

0
ramadevimandalaAuthor Commented:
swaping the elements in loop is working fine.. thanks
0
CEHJCommented:
ramadevimand, that's good. Can you post the code you're now using?
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Programming

From novice to tech pro — start learning today.