Bir RPN denklemini tigcc kurallarına uyan bir dizgeye dönüştürmeye çalışıyorum. Sayıların önlerinde karakter sayısı ve olumlu veya olumsuz bir etiket olması gerekir. "2" için bu "1 2 POSINT_TAG"Java'nın String.replaceAll() regex işlevlerini veya yöntemlerini kullanma
rpn dönüştürücü Benim komple giriş regexes dayanmaktadır olacağını, bu yüzden onları yeniden kullanmak istedi ve sahip bir String.replaceAll()
fonksiyonu gibi:
string.replaceAll("(\d+)","$1".length+" $1 POSINT_TAG");
Ama Sadece yazdırır: "2 adet INT_TAG". Com.stevesoft.pat (link) gibi bazı sınıflar buldum.
Normal Sun Java'da, normal ifadeler yerine kullanılan (özel) işlevleri kullanmak için başka bir yol var mı?
FYI, StringBuilder genellikle tercih edilir, 'appendReplacement() 've' appendTail() 'bunu kabul etmez; Bunun yerine StringBuffer kullanmalısınız. (StringBuilder henüz Matcher sınıfı eklendiğinde, JDK 1.4'te bulunmadı.) –
+1 yorumu - Ben herhangi bir 'Appendable' alabilecek bu yöntemlerin aşırı yüklenmesini ekleyeceğini umuyoruz Java 8, hala sadece 'StringBuffer' sürümü var. –
[Bu cevabı Android için Yığın Taşımı mobil uygulamasının kaynak kodunda alıntılanmıştır] (http://meta.stackexchange.com/a/277077/254929) bilmek için eğlendirilebilir. – Air