2017-01-12 25 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!

相关问题