Problemas com manipulação de strings e separação de métodos

Olá pessoal. Estou com o seguinte problema. tenho um código pronto aqui, porém preciso separa-lo em métodos. Para que ele não fique apenas dentro do main inteiro. e eu não estou conseguindo. alguém ae pra me ajudar ? agradeço antecipadamente.

esse é o código pronto:

[code]
public static void main (String[]args) throws Exception {

int conexao,retorno1,retorno2,a,b; // retorno de SAConnect
String caminho; // recebe o comando a ser executado no GP
ArrayList <String> quebra1;
String s1;  // String que será quebrado
SQLAdaJ sql = new SQLAdaJ();
Quebra sd= new Quebra();

conexao = sql.SAConnect("00000000191","34839SALEXDATFLA2007","SALEX-D","10.3.10.1");
// Tente fazer a conexão com seguintes dados usuário, senha, perfil de acesso e ip 



//consulta 
caminho = "SELECT A1 A2  FROM 001.062 WHERE SA =33683111" + "1";
// Executa a consulta
retorno1 = sql.SACommand(conexao, caminho);

s1= sql.strArea; //recebe a estrutura da Consulta	
StringTokenizer ds = new StringTokenizer (s1);
String delim = ",";
ds.nextToken(delim);
a = Integer.parseInt(ds.nextToken(delim)); // recebe o tamanho do primeiro campo

ds.nextToken(delim);
b=Integer.parseInt(ds.nextToken(delim));// recebe o tamanho do segundo campo

System.out.println(s1);	// recebe a estrutura com  o tamanho dos campos e tipo

retorno2 = sql.SAGetNext(conexao); // pega o próximo registro
 s1=sql.strArea;   // joga o registro na String

System.out.println("#"+s1+"#");
retorno2 = sql.SAGetNext(conexao);



quebra1 = sd.quebra(s1); // chama o método quebra

for(int conta=0;conta <quebra1.size(); conta++ ){ //Imprime os elementos da ArrayList
	System.out.println(quebra1.get(conta)); }
	
System.out.println(sql.SADisconnect(conexao)); // Desconecta do Grande porte 



  }} [/code]

e esse é oq eu estou tentando fazer:


import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;

import SQLAda.SQLAdaJ;
public class Acesso_ao_gp {
	
	SQLAdaJ sql = new SQLAdaJ();
    Quebra sd= new Quebra();
	
	public int SqlConnect(String usuario,String senha, String perfil, String ip,String way) throws IOException{
		int connection,return1;
				
		connection = sql.SAConnect(usuario,senha,perfil,ip);
		
		return1 = sql.SACommand(connection, way);
		
		return connection;
		
		
	}
	
	
	
	public void getStructure(String s1){
		int return2,a,b;
		ArrayList <String> quebra1;
		s1= sql.strArea; //recebe a estrutura da Consulta	
		StringTokenizer ds = new StringTokenizer (s1);
		String delim = ",";
		ds.nextToken(delim);
	    a = Integer.parseInt(ds.nextToken(delim)); // recebe o tamanho do primeiro campo
	   ds.nextToken(delim);
		b=Integer.parseInt(ds.nextToken(delim));// recebe o tamanho do segundo campo
	    
		
		
		System.out.println(s1);	// recebe a estrutura com  o tamanho dos campos e tipo

	    return2 = sql.SAGetNext(sql.SqlConnect()); // pega o próximo registro
		 s1=sql.strArea;   // joga o registro na String
		
		System.out.println("#"+s1+"#");
		return2 = sql.SAGetNext(connection);
	    
		
		
		quebra1 = sd.quebra(s1); // chama o método quebra
		
		for(int conta=0;conta <quebra1.size(); conta++ ){ //Imprime os elementos da ArrayList
			System.out.println(quebra1.get(conta)); }
			
		System.out.println(sql.SADisconnect(connection)); // Desconecta do Grande porte 
		
		
	}
}