如何拆分数组并回读结果?

时间:2015-02-16 00:53:57

标签: java

当我读到一个字符串,例如" Georgia Southern(太阳腰带)| 9 | -1 | -1 | -1 | -1 | 0 | 0 | 1"然后根据下面的代码拆分字符串,我无法从数组中成功打印出拆分部分。相反,只打印出一个字母。使用下面的代码我的输出是' G'而不是"格鲁吉亚南部(太阳带)"。

import java.util.*;
import java.io.*;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;
public class Schedule
{
   public static void main (String args[])throws IOException
   {
      Scanner sc=new Scanner(new File("Footballteams.txt"));
      Set<Football>teams=new TreeSet<Football>();
      String x=sc.nextLine();
      System.out.println(x);
      String[]a=x.split("|",9);
      System.out.println(a[1]);     
   }
}

2 个答案:

答案 0 :(得分:1)

String split将正则表达式作为第一个参数。管道(“|”)与OR运算符匹配,因此您必须将其分隔,从而拆分(“\\ |”,9)

答案 1 :(得分:0)

正确打印数组元素。数组元素实际上是“G”。

为什么呢?因为split期望正则表达式作为参数。在正则表达式中,a|b表示“匹配ab”,因此|本身表示“匹配空字符串或空字符串”,因此它与空匹配串。这导致split在每个可能的点(即每对字符之间)分开。

要匹配实际的|,请使用x.split("\\|", 9)代替x.split("|", 9)