2010-12-27 21 views
7

Bazı satırları içeren bir .txt metin dosyasına sahibim .. İçindekileri RequestBuilder nesnesini kullanarak yüklüyorum ve responseText'i word'leriyle bölüyorum = String.split (" \ n "); Herhangi bir yardım son derece takdir edilirStrange String.split (" n") davranış

abc 
def 
ghi 

sonucudur,

words[0] = "abc\n" 
words[1] = "def\n" 
words[2] = "ghi\n" 

: Sonuç "\ n" bölümünü içeren neden ama, Örneğin .. benim metin merak ediyorum. Şimdiden teşekkürler.

+2

Satırlarınızın "\ n" ile sonlandırıldığından emin misiniz? "\ R \ n" ile veya başka bir şeyle sonlandırılabilirler. – Asaph

+0

ohh mümkün olabilir, nasıl kontrol edebilirim? metin editörüme girdiğimde ne yaratılır? – amateurs

+0

Her zaman .trim() sonucunu elde edebilirsiniz ve sanırım orada ne varsa çıkarırız. –

cevap

8

, Windows satır başları ("\r\n") sonuçlarınıza görünür bir fark yaratmak olmamalı nede kullanıyorsa String.split()'a ilettiğiniz normal ifadeden kurtulmanız gerekir. Yapmanız Eğer http://ideone.com/4PnZi

, Windows arabası olsa döndürür kullanmak yapmanız gerekir (kesinlikle gerekli olmasa da) str.split("\r\n") adres:

İşte hem kanıtı str.split("\n") kullanarak yukarıdaki http://ideone.com/XcF3C

+0

Harika! Cevabınız herşeyi netleştirir, ancak metin editöründe \ n ile sonlanan bir metni nasıl yapabilirim? \ r \ n sadece pencerelerde mi? – amateurs

+0

@amateurs Linux ve diğer uygulamalar '\ n' kullanırken, birçok Windows uygulaması bir hattı sonlandırmak için' \ r \ n' kullanacaktır. Java'da satır başı ('\ r') döndürmek istiyorsanız, str.replaceAll ("\ r \ n", "\ n") 'komutunu kullanın. Taşıyıcıyı kullanmayan bir Windows uygulaması bulmak, öncelikle başka birine sormak zorunda kalacaksınız. – marcog

+0

tamam! anladım. teşekkürler marcog! : D – amateurs

15

string.split("\\n+")'u kullanmayı deneyin. Hatta daha da iyisi - split("[\\r\\n]+")

+0

+1 evet, bu doğru yoldur. – Nishant

+6

ama boş satırları atlamıyor mu? (belki de) –

+0

Bu gerekli değil, cevabımı gör. – marcog

2

bölünmüş siz "\\ n" yerine kullanması gereken düzenli ifade "\ n"

+2

Bölme, "Ters eğik çizgileri, escapes ve quotiong" başlıklı bölüme bakın. – Powerlord

+0

havalı. Teşekkürler. Dokümandan iki kez kontrol etmeden belleğe güvenmek istemedim. Yani, bunu bakmak için OP'ye bıraktı. :) – Nishant

+0

'String.split()' bir normal ifadeyi almasına rağmen, bu gerekli değildir. – marcog

0

Ayrıca isteyebilir String[] lines = text.split("\\\\n");

İlgili konular