Jump to content

duvida no codigo


AMB
 Share

Recommended Posts

Bom dia eu tenho o seguinte código:

for(File arquivo : lista) {  
	    
	           FileReader reader = new FileReader(arquivo);  // lê ficheiro
	             BufferedReader leitor = new BufferedReader(reader);  
	       
	            while ((linha = leitor.readLine()) != null) {  
	            	 StringTokenizer st;  
	                 st = new StringTokenizer(linha, "\t");   //lê o ficheiro linha a linha
	                   
	                   String t = "<Lua>"; 
	                   
		         Pattern p = Pattern.compile(t);  
		         Matcher m = p.matcher(linha); //procura string t e devolve a linha caso encontre
		           
		     
			      
			         while (m.find()){
		        	String x = arquivo.getPath(); // mostra o nome do ficheiro onde está a palavra
		            System.out.println("" + x);  
		            System.out.println(m.group());

Eu anteriormente queria apenas encontrar os ficheiros que continham "Lua" mas agora queria acrescentar na procura também os que contem o "Sol" ...

Como posso fazer isso??

Obrigada

Link to comment
Share on other sites

Usando um novo padrão? Além do padrão actual, acrescentar mais um é a forma mais simples, não é necessariamente a melhor mas é a mais simples. Ou alteras a tua expressão regular para usar grupos e para usar operações lógicas, neste caso um OU. Vê a documentação de expressões regulares em Java que tens lá exemplos para este tipo de problema.

Link to comment
Share on other sites

Já consegui =) obrigada

só uma questão eu tenho no código algumas querys a base de dados:


   ResultSet xx2 = stsql.executeQuery("SELECT Modelo FROM Loc WHERE Local = '"+local+"'");    
                           if (xx2.next()){       
                         String modeq = xx2.getString("Modelo");    
                          System.out.println(modeq);    
                              
                        String ddz = null;    
                             if(modeq.equals("ati"))    
                              ddz = "3";    
                                System.out.println("dz = 3");    
                          if(modeq.equals("an"))    
                               ddz = "0";    
      
                          ResultSet xx3 = stsql.executeQuery("SELECT regi FROM A WHERE Stud = '"+sd+"'");    
                          if (xx3.next()){    
                              String reg = xx3.getString("regi");    
                                  
                             String ctdia = null;    
                              if(reg.equals("body") && modeq.equals("amulti"))    
                                    ctdia = "0.34";    
                                 
                               if(reg.equals("head") && modeq.equals("aquilion_multi"))    
                                 ctdia = "0.27";    
                             if(reg.equals("head") && modeq.equals("an"))    
                                 ctdia = "0.22";    
                                      
                                 
                                if(reg.equals("body") && modeq.equals("an"))    
                                 ctdia = "0.22";    
                      

Mas só queria fazer quando fosse <Sol> pois quando <Lua> isto não se aplica e queria por os campos correspondentes como null... como posso fazer isso ????

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.