şey gibi: muhtemelen bir overkill olmasına rağmen How to split String with some separator but without removing that separator in Java?Alanı boş bırakmadan bir dize ayırma?
Ben, Bir normal ifadeler kullanabilirsiniz
şey gibi: muhtemelen bir overkill olmasına rağmen How to split String with some separator but without removing that separator in Java?Alanı boş bırakmadan bir dize ayırma?
Ben, Bir normal ifadeler kullanabilirsiniz
[ "Merhaba", "", "Dünya"] "Hello World" alıp almak gerekir:
StringCollection resultList = new StringCollection();
Regex regexObj = new Regex(@"(?:\b\w+\b|\s)");
Match matchResult = regexObj.Match(subjectString);
while (matchResult.Success) {
resultList.Add(matchResult.Value);
matchResult = matchResult.NextMatch();
}
Yalnızca sözcük sınırına bölünürseniz, sorduğunuz şeye çok yakın bir şey elde edersiniz.
string[] arr = Regex.Split("A quick brown fox.", "\\b");
dizi [] = { "", "A", "", "hızlı", "" "kahverengi", "" "tilki", ""
Bunun dışında string.Split() 'normal ifadelerle çalışmaz. – svick
Evet, açıklamanın ilk satırında Java'ya yapılan referansı gördüm ve C# için bir etiket olduğunu göz ardı ettim. – phatfingers
C# ile yazılacak örnek kodu gözden geçirdim. Dizi sonuçları aynıdır. Zarif çözüm için – phatfingers
Bunun için Regex.Split()
kullanabilirsiniz. Eğer parantez yakalama desen içine alırsanız, çok sonucu dahil edilecektir:
Regex.Split("Hello World", "()")
istediğini tam olarak ne verir.
+ 1. Cevabını neden doğru olarak işaretlemedi? –
Neden? Neden her iki element arasında bir boşluk olduğunu varsaymıyorsun? – SLaks
Neden tam olarak? Ayırıcının bir boşluk olduğunu biliyorsunuz, sonuç olarak ortaya çıkan dizinin her elemanı için bitişik elemanlar arasında bir boşluk olacaktı. String.Join() işlevini kullanırsanız, alanı tekrar yerleştirebilirsiniz. Ayrık sonuçlarda neden ihtiyaç duyduğunuza şaşıyorum. – slugster
Merhaba ve dünya birden fazla alan tarafından ayrıldıysa, geriye ne istersiniz? –