【发布时间】:2017-01-12 03:09:28
【问题描述】:
感谢您阅读本文。我目前正在制作一个电话簿项目,该项目要求我只使用一个数组来存储值。我的问题是如何将数组中的字符串拆分为两个值?所以我可以搜索某人的姓名并获得他们的姓名和电话号码。
【问题讨论】:
-
这是作业吗?
-
我不想对 OP 说些什么,我想请版主暂时屏蔽所有已回答的人的帐户,以便于代表...
感谢您阅读本文。我目前正在制作一个电话簿项目,该项目要求我只使用一个数组来存储值。我的问题是如何将数组中的字符串拆分为两个值?所以我可以搜索某人的姓名并获得他们的姓名和电话号码。
【问题讨论】:
您可以简单地对数组的任何元素使用 String#split 方法,其分隔符可以是任何字符。这是我选择 : 作为分隔符的示例。
String[] information = { "Castiel Li:123-456-7890" };
String[] args = information.split(":");
String name = args[0];
String phoneNumber = args[1];
【讨论】:
如果你有如下数组:
String[] records = {"Bob, 1", "Mary, 2", "Castiel, 3"};
然后您可以循环遍历记录数组并将 String#split() 方法应用于每个 String 对象。在这种情况下,每个字符串中的分隔符(分隔标记的字符)是“,”,因此对于给定的字符串“名称,数字”,您可以这样做:
String[] oneRecord = records[i].split(',');
其中oneRecord[i] 将包含两个字符串对象“name”和“number”
【讨论】:
您尚未提供示例输入和输出。但我认为你是说你将电话簿存储在一个单维数组中,如下所示:
String[] array = {"Abc123", "xyz234", "pqr343"};
您可以尝试以下方法:
String phone1 = array[0].replaceAll("[^0-9]", "");
String name1 = array[0].replaceAll("[0-9]", "");
System.out.println(name1 + " " + phone1);
【讨论】:
这样的东西可能使用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!
【讨论】: