使用分隔符组织一个集合

时间:2014-03-10 02:25:19

标签: java java.util.scanner delimiter

有没有办法在分隔符符号出现时每隔一次使用分隔符?

例如,你有一组以逗号分隔的字符串,如:(yes,2,my,15,face,9) 我希望这个单词与紧随其后的数字配对,并将上面的集合分成以下内容:((yes,2),(my,15),(face,9))。我正在为此使用自定义列表,所以在现实中我添加了每个元素[例如。 (是,2))到列表中。

3 个答案:

答案 0 :(得分:0)

您可以使用正则表达式模式。这段代码描述了一个解决方案(因为我不知道你想如何存储它,我只是将它打印出来)。

String data = "yes,2,my,15,face,9";

Pattern p = Pattern.compile("[^,]*,[^,]*,?");
Matcher matcher = p.matcher(data);

while (matcher.find()) {
    String[] splitted = matcher.group().split(",");
    System.out.println(splitted[0]);
    System.out.println(splitted[1]);
    System.out.println("******************");
}

输出:

yes
2
******************
my
15
******************
face
9
******************

另一个解决方案是使用Scanner和分隔符“,”并将返回的部分配对。

答案 1 :(得分:0)

您可以使用分隔符(在您的情况下为逗号)解析字符串,然后在条目中处理每个对,并列出这些条目。 (看起来像家庭作业,所以没有指定确切的代码。)

答案 2 :(得分:0)

你为什么关心'分隔符'?如果我是你,我会做这样的事情。

String input = "Yes, 2, my, 15, face, 9";
String delimiter = ",";
List<Pair> s = createPairs(Arrays.asList(input.split(delimiter))); 

List<Pair> createPairs(List<String> input) {
  // read 2 at a time and create a Pair Object 
}  

`

这样,我可以使用任何分隔符并保持API清洁。如果这只是一次性作业并且模式已修复(字符串后跟,(逗号)和数字),那么您也可以使用正则表达式来匹配它。只是谷歌你会发现吨。