2017-01-12 16 views
-4

これを読んでくれてありがとう。私は現在電話帳プロジェクトを作っています。このプロジェクトでは、値を格納する配列を1つだけ使用する必要がありました。私の質問は、配列内のStringを2つの値に分割する方法です。だから私は誰かの名前を検索して名前と番号を得ることができます。次のような配列がある場合配列内の文字列を分割

+0

この宿題はありますか? – bakki

+0

OPに何かを言っているのではなく、私は司会者に、簡単な返事に答えるすべての人の口座を一時的にブロックするように頼みたいと思っています。 –

答えて

0

区切り文字が任意の文字であれば、配列の任意の要素に対してString#splitメソッドを使用できます。ここでは私が選んだ例があります:デリミタになること。

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

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

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

は:

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

を次に、ループ内のレコードの配列を反復処理し、各Stringオブジェクトに文字列#分割()メソッドを適用することができます。この場合、各文字列の区切り文字(tokesを区切る文字)は「」、与えられた文字列 『名前、番号』のために、あなたがしたいので:

oneRecord[i]は2が含まれます
String[] oneRecord = records[i].split(','); 

+0

それでは、oneRecordは何を保存しますか?ストリングの前半? –

+0

@CastielLiわかりやすく編集します。また、あなたのプログラムが入力をどのように受け取っているか、最終的な配列が1次元である必要があるかどうかを明確にしますか?あなたが望む結果を得るために、私が記述したロジックを使うことができますが、それはあなたが達成したいものに正確に依存します。 – synchronizer

+0

私はそれを得たと思う。最終的な配列は1次元で、プログラムは入力を受け取ります。私はちょうど配列の中で文字列を分割する方法がわかりませんでした。私は、ローカル変数を使用してユーザー入力とデータベースを比較するだけだと思います –

0

サンプル入力と出力を指定していません。

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

あなたは、次のような何か試すことができます:おそらくこのような

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

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

は何かその使用をしかし、私はあなたが以下のような1次元配列で電話帳を格納していることを言っていると思います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]); 
    } 
} 

出力:

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

お試しくださいhere!