2017-01-12 22 views
-4

感謝您閱讀本文。我目前正在製作一個電話簿項目,它要求我只使用一個數組來存儲值。我的問題是如何將一個數組中的字符串分成兩個值?所以我可以搜索某人的姓名並獲得他們的姓名和電話號碼。split數組中的字符串

+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"}; 

然後,你可以通過在一個循環中記錄陣列迭代和字符串#split()方法適用於每個字符串對象。在這種情況下,分隔符(字符分隔托克斯(Tokes))在每個字符串是「」,所以對於一個給定的字符串‘姓名,號碼’,你會怎麼做:

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

oneRecord[i]將包含兩個字符串對象「名稱」和「數字」

+0

那麼oneRecord會存儲什麼?字符串的前半部分? –

+0

@CastielLi我會進行澄清編輯。另外,你會澄清你的程序是如何接收輸入的,以及你的最終數組是否需要一維,特別是?您可以使用我描述的邏輯來獲得所需的結果,但這完全取決於您希望達到的目標。 – synchronizer

+0

我想我明白了。最終的數組將是一維的,程序確實接收輸入。我只是不確定如何分割數組中的字符串。我想我只是使用本地變量來比較用戶輸入和數據庫 –

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

像這樣的事情也許是使用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!

相關問題