2016-03-23 14 views
-4

Belirli bir dizeyle başlayan tüm alt dizeleri getirmem gerekiyor. Örneğin, dizi "toplamı ([Calculation_8630212162300975])/Zn (toplamı ([Calculation_6310302163817118]))", I "Calculation_8630212162300975" olarak çıktı elde etmelidir "Calculation_6310302163817118"Belirli bir dize ile başlayan tüm alt dizeleri getir

I ise Aşağıdaki kodu denedim. Böyle bir dizenin tek örneği olduğunda iyi çalışır. Fakat birden fazla olay olması durumunda, bana ilk parantez ile başlayan diziyi son basamağa kadar döndürür. Yukarıda belirtilen Örneğin, (sum ([Calculation_6310302163817118 Calculation_8630212162300975])/zn döndürür

Matcher m = Pattern.compile("\\[([^)]+)\\]").matcher(formula);                      

while(m.find()) { 

System.out.println(m.group(1)); 

} 
+0

eşleşecek şekilde kural neydi? Ve bunlar sana ne var Şimdiye kadar yapılan? –

+0

'Hesaplama _ \\ d +' – dimo414

cevap

0

sert ve güçlü çözüm

String value = "sum([Calculation_8630212162300975])/zn(sum([Calculation_6310302163817118]))"; 

    if(value.contains("sum")){ 
     String valueDum= value.substring(value.indexOf("sum")+3,value.length()); 

     if(valueDum.contains("sum")){ 
      String myFirstValue = valueDum.substring(0,valueDum.indexOf("/")); 
      String mySecondValue = valueDum.substring(valueDum.indexOf("sum")+3,valueDum.length()); 
     } 
    } 
} 
+0

Bu sadece bir örnekti.Kod, mutlaka bir "/" olacaktır. Bu çözümün her durumda çalışacağını düşünmüyorum. string "toplamı ([Calculation_8630212162300975]) + Zn (toplam ([Calculation_6310302163817118])) + [Calculation_8630212162300972]". Bu durumda, Calculation_8630212162300975, Calculation_6310302163817118 ve Calculation_8630212162300972 – user1302763

+0

'u getirmem gerekiyor. Bunun üzerine kendi mantığınızı uygulayın. Zaten zor ve güçlü çözümünüzü yalnızca sağladığınız için yazdım. Bu çözümün her şey üzerinde çalışmayacağını biliyorum. Onun sadece sorunuza göre. Onları bir diziye ayırın, sonra her birini yakalayın. Bunun için bir çözüm sunmaya başlasaydım, Bu çok sayıda hesaplama ve mantıkla büyük bir proje olacak. Mantığınızı uygularken bazı problemler ortaya çıktıysa, o zaman burada sormalısınız. –

İlgili konular