2016-04-05 7 views
0

Bazı karakterli bir Dosyam var ve ben & è à gibi bazı varlıklarım var 0-& amp yerine eklemek istiyorum; ve böylece .. nasıl yapabilirim? (& mezarını;) ve & (& amp;) ile değiştirilir i Oggi è lunedì varsa & domani è Mercoledi i è yerine bunu istiyorum Bu kodu vardır ama her seferinde bir kimlik çalışır .. .bir dosyanın tüm kimliklerini dönüştürebilirsiniz java

public void genereateFile(String char_speciale, String char_sostituto, String url_scheletro_file, String url_nuovo_file){ 
      try{ 
       BufferedReader rdr = new BufferedReader(new InputStreamReader(new FileInputStream(url_scheletro_file))); 
       BufferedWriter wrt = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(url_nuovo_file))); 
       String line=rdr.readLine(); 
       while(line!= null){ 
        line=line.replaceAll(char_speciale, char_sostituto); 
        wrt.append(line); 
        wrt.newLine(); 
        line = rdr.readLine(); 
       } 
       wrt.close(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
+2

sizin örnek girişi nasılolabileceği bir örneğini ve Oluşturmak istediğiniz çıktıyı ekleyin. –

+0

, aşağıdaki gibi düzenli ifadeler kullanarak: '12 've' à 'öğelerinin tümünü' _ 'ile değiştirmek için Dize new_s = s.toLowerCase(). ReplaceAll ("[& à]", "_"); replaceAll normal ifadeleri ve kullanarak kullanıyor. bir karakter sınıfının içinde [] sadece tanır a. herhangi bir karakter yerine. –

+0

Sorunuz açık değil. HTML karakterinden kurtulmaya/çıkarmaya çalışıyorsanız, bu, http://stackoverflow.com/questions/14998726/replace-html-codes-with-equivalent-characters-in-java Çözümünün https: // commons kullanımını sağlamasına yardımcı olur. apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html – RubioRic

cevap

0

Sorunuz net değil ama hepiniz değiştirmek isterseniz 'e' ve 'à' '&'

Kullanım düzenli ifade ile çok

olarak yöntemini çağırmak bunu Aşağıdaki gibi düzenli ifade kullanarak
genereateFile("[èà]", "&", url_scheletro_file, url_nuovo_file); 
0

: Bir '' dize

String new_s = line.toLowerCase().replaceAll("[èà]", "&"); 

replaceAll tüm '&' ve 'à' yerine düzenli ifadeler kullanarak ve kullanıyor. bir karakter sınıfının içinde [] sadece tanır a. herhangi bir karakter yerine.

DÜZENLEME:

public void genereateFile(String char_sostituto, String url_scheletro_file, String url_nuovo_file){ 
      try{ 
       BufferedReader rdr = new BufferedReader(new InputStreamReader(new FileInputStream(url_scheletro_file))); 
       BufferedWriter wrt = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(url_nuovo_file))); 
       String line=rdr.readLine(); 
       while(line!= null){ 
        line=line.toLowerCase().replaceAll("[èà]", char_sostituto); 

        wrt.append(line); 
        wrt.newLine(); 
        line = rdr.readLine(); 
       } 
       wrt.close(); 
      }catch(Exception e){ 
       e.printStackTrace(); 
      } 
0

Sen replaceAll(regex, replacement); İlk argüman kullanabilirsiniz düzenli ifade olduğunu ve maçları eğer sağlanan değiştirme ile değiştirin.

Kontrol Docs