2016-11-26 24 views
-2

split関数を使用してcontact name,emailおよびmobile numberをファイル(contact.txtなど)から読み取ろうとしています。だから私は\n"<space>"を使用して配列にすべての文字列をキャプチャしました。ループ内の繰り返し文字列

私のファイルcontact.txt内部では、データは以下のように続いている。ここで

name1 email1 mobile_1 
name2 email2 mobile_2 
name3 email3 mobile_3 
name4 email4 mobile_4 
name5 email5 mobile_5 
name6 email6 mobile_6 

は私のコードは次のようになります:

String usersInfo; 

BufferedReader br = new BufferedReader(new FileReader("C:/contact.txt")); 
try { 
    StringBuilder sb = new StringBuilder(); 
    String line = br.readLine(); 

    while (line != null) { 
     sb.append(line); 
     sb.append(System.lineSeparator()); 
     line = br.readLine(); 
    } 
    usersInfo = sb.toString(); 
} finally { 
    br.close(); 
} 


String[] splitStrNewLine = usersInfo.split("\n"); 
String[] splitStrSpace = usersInfo.split("[ \n]"); 


for(int i=0; i<=5; i++){ 
    for(int j=0; j<=2; j++){ 
     System.out.println(splitStrSpace[j]); 
    } 
} 

今ではループ賢明繰り返すと出力に同じ文字列を与え始め、出力以下の通り:

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

私のすべてのデータを取得する方法シリーズ賢明?

お手数ですが、事前に感謝します!

+0

下のループは 'i'インデックスを全く使わないようです – Nicko

+0

この場合、どうすればいいですか? –

+0

whileループ内の連絡先情報を分割してみませんか? –

答えて

0

String[] splitStrNewLine = usersInfo.split("\n"); 

fileLength = splitStrNewLine.length(); 

for(int i=0; i<fileLength; i++){ 
    splitStrSpace = splitStrNewLine[i].split("[ ]"); \\specify delimiter you want to split 
    for(int j=0; j<splitStrSpace.length(); j++){ 
     System.out.println(splitStrSpace[j]); 
    } 
} 
+0

ありがとう男...... :) –

0

tryブロックの後にこれを試してみては私はあなたが先に行くと、実際のコレクション構造を使用することをお勧めすることはできますか? readLineを使用して行を取得しています。挿入された文字を一緒に戻して貼り付ける必要があるのはなぜですか? 。

List<String> usersInfo = new ArrayList<String>() 
BufferedReader br = new BufferedReader(new FileReader("C:/contact.txt")); 
try { 
    String line = br.readLine(); 
    while (line != null) { 
     lines.add(line); 
     line = br.readLine(); 
    } 
} finally { 
    br.close(); 
} 

は今、あなたは反復しやすい構造を持っており、それが来たとして、あなたが戻って同じ各行を取得する今、ちょうど行を反復処理し、各ラインを分割し、必要に応じて:

for(String line : userInfo){ 
    String[] splitStrSpace = line.split("[ ]"); 
    for(int j=0; j<=splitStrSpace.length; j++){ 
     System.out.println(splitStrSpace[j]); 
    } 
} 
関連する問題