2016-11-26 5 views
-2

Ich versuche, eine contact name, email und mobile number von Datei (d. Kontakt.txt) mit Split-Funktion zu lesen. Also habe ich alle diese Strings in Array mit \n und "<space>" gefangen.Wiederholen der Zeichenfolge innerhalb der Schleife

Inside my Datei contact.txt, werden die Daten wie unten folgt:

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

Hier ist mein Code wie folgt aussieht:

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]); 
    } 
} 

Nun begann er die Ausgabe gleiche Zeichenfolge geben mit sich wiederholenden Schleife weise, Output wie folgt:

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

name1 
email1 
mobile_1 

Bitte lassen Sie mich wissen, wie Sie alle meine Daten abrufen Serie weise?

Hilfe wäre dankbar, Vielen Dank im Voraus!

+0

Die Schleife an der Unterseite scheint überhaupt nicht den 'i'-Index zu verwenden. – Nicko

+0

Was sollte ich in diesem Fall verwenden? –

+0

Warum teilen Sie nicht einfach die Kontaktdaten in der While-Schleife? –

Antwort

0

Versuchen Sie dies nach dem Try-Block

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

Danke Mann ...... :) –

0

kann ich Ihnen empfehlen, gehen Sie vor und eine echte Sammlung Struktur verwenden? Sie verwenden readLine, um Zeilen zu erhalten. Warum fügen Sie sie wieder zusammen mit einem eingefügten Zeichen ein, das dann erneut analysiert werden muss? .

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(); 
} 

Jetzt haben Sie eine Struktur haben, die leicht zu durchlaufen ist, und Sie erhalten jede Zeile wieder so, wie es in kam nun nur die Linien durchlaufen, und jede Zeile geteilt je nach Bedarf:

for(String line : userInfo){ 
    String[] splitStrSpace = line.split("[ ]"); 
    for(int j=0; j<=splitStrSpace.length; j++){ 
     System.out.println(splitStrSpace[j]); 
    } 
} 
Verwandte Themen