当我读到一个字符串,例如" 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]);
}
}
答案 0 :(得分:1)
String split将正则表达式作为第一个参数。管道(“|”)与OR运算符匹配,因此您必须将其分隔,从而拆分(“\\ |”,9)
答案 1 :(得分:0)
您 正确打印数组元素。数组元素实际上是“G”。
为什么呢?因为split
期望正则表达式作为参数。在正则表达式中,a|b
表示“匹配a
或b
”,因此|
本身表示“匹配空字符串或空字符串”,因此它与空匹配串。这导致split
在每个可能的点(即每对字符之间)分开。
要匹配实际的|
,请使用x.split("\\|", 9)
代替x.split("|", 9)
。