0
我有一個包含所有NCAA分部1冠軍賽自1933年以來的文本文件閱讀,Java的掃描器類useDelimiter方法
文件的格式如下:1939年:維拉諾瓦:42:布朗:30 1945:紐約大學:70:俄亥俄州立大學:65 * *一些大學擁有多個空格的事實給我帶來了很多麻煩,因爲我們只能讀取學校名稱並捨棄年份,分數和冒號。我不知道是否必須使用分隔符來丟棄什麼空格,但是按照我的意思,我是一個非常迷茫的人。
我們將放棄日期,點數和「:」。我稍微與useDelimiter方法類似,但是,我已經讀過.split(「」)可能會有用。由於缺乏模式知識,我遇到了很多問題。
這是我到目前爲止有:
class NCAATeamTester
{
public static void main(String[]args)throws IOException
{
NCAATeamList myList = new NCAATeamList(); //ArrayList containing teams
Scanner in = new Scanner(new File("ncaa2012.data"));
in.useDelimiter("[A-Za-z]+"); //String Delimeter excluding non alphabetic chars or ints
while(in.hasNextLine()){
String line = in.nextLine();
String name = in.next(line);
String losingTeam = in.next(line);
//Creating team object with winning team
NCAATeamStats win = new NCAATeamStats(name);
myList.addToList(win); //Adds to List
//Creating team object with losing team
NCAATeamStats lose = new NCAATeamStats(losingTeam);
myList.addToList(lose)
}
}
}
你每行有一年的?如果是這樣,一個簡單的解決方案是使用換行符作爲分隔符,使用「:」分隔行並保留數組中的第二個和第四個元素。 –
如果你一定想使用掃描儀,你應該使用冒號作爲分隔符('in.useDelimiter(「:」);')。否則,我同意下面回答的人,使用String.split可能更簡單。 – Alderath
我想知道如果你想看看使用正則表達式。 [檢查這是用於php,但概念保持不變。](http://forums.devnetwork.net/viewtopic.php?f=38&t=33147) –