2017-01-12 4 views
-4

Vielen Dank für das Lesen. Ich mache gerade ein Telefonbuchprojekt, bei dem ich nur ein Array zum Speichern von Werten verwenden musste. Meine Frage ist, wie können Sie einen String innerhalb eines Arrays in zwei Werte aufteilen? So kann ich den Namen einer Person suchen und ihren Namen und ihre Nummer bekommen.split String in einem Array

+0

diese Hausaufgaben? – bakki

+0

anstatt etwas zu OP zu sagen, möchte ich Moderatoren bitten, die Konten all derer vorübergehend zu blockieren, die sich für eine einfache Antwort ge ... –

Antwort

0

Sie können einfach die Methode String # split für jedes Element des Arrays verwenden, dessen Begrenzer ein beliebiges Zeichen sein kann. Hier ist ein Beispiel, wo ich wählte: als Trennzeichen.

String[] information = { "Castiel Li:123-456-7890" }; 

String[] args = information.split(":"); 

String name = args[0]; 
String phoneNumber = args[1]; 
1

Wenn Sie ein Array wie folgt haben:

String[] records = {"Bob, 1", "Mary, 2", "Castiel, 3"}; 

dann können Sie die Aufzeichnung Array in einer Schleife durchlaufen und die Saite # split() Methode zu jedem String-Objekt anzuwenden. In diesem Fall ist das Trennzeichen (Zeichen, das tokes trennt) in jeder Kette ist, die ‚‘, so für einen ‚Namen, die Nummer‘ String gegeben, was Sie tun würden:

String[] oneRecord = records[i].split(','); 

Wo oneRecord[i] die beiden enthielte String-Objekte "name" und "number"

+0

Was würde oneRecord also speichern? die erste Hälfte der Saite? –

+0

@ CastielLi Ich werde mit Klarstellung bearbeiten. Würdest du auch klären, wie dein Programm die Eingabe erhält und ob dein endgültiges Array spezifisch eindimensional sein muss? Sie können die beschriebene Logik verwenden, um das gewünschte Ergebnis zu erzielen, aber alles hängt davon ab, was genau Sie erreichen möchten. – synchronizer

+0

Ich denke, ich habe es. Das endgültige Array wird eindimensional sein und das Programm erhält eine Eingabe. Ich war mir nicht sicher, wie ich eine Zeichenfolge innerhalb eines Arrays aufteilen sollte. Ich denke, ich werde nur lokale Variable verwenden, um mit der Benutzereingabe und der Datenbank zu vergleichen –

0

Sie haben keine Beispieleingänge und -ausgänge angegeben. Aber ich denke, Sie sagen, dass Sie das Telefonbuch in einer einzigen Dimension Array zu speichern wie folgt vor:

String[] array = {"Abc123", "xyz234", "pqr343"};

Sie können so etwas wie versuchen folgende:

String phone1 = array[0].replaceAll("[^0-9]", ""); 
String name1 = array[0].replaceAll("[0-9]", ""); 

System.out.println(name1 + " " + phone1); 
0

So etwas wie dies vielleicht, dass die Verwendung str.split()

import java.util.Arrays; 

class Main { 
    public static void main(String[] args) { 

    String phoneBook[] = new String[2]; 
    phoneBook[0] = "John 1234567"; 
    phoneBook[1] = "Max 2345678"; 

    System.out.println(Arrays.toString(phoneBook)); 

    for(String contact : phoneBook) 
     System.out.println("Name: " + contact.split(" ")[0] + " Phone Number: " + contact.split(" ")[1]); 
    } 
} 

Ausgang:

[John 1234567, Max 2345678] 
Name: John Phone Number: 1234567 
Name: Max Phone Number: 2345678 

Probieren Sie es here!