2013-04-10 51 views
0

我有这个字符串:如何做这个分隔符?

1945年:纽约大学:70:俄亥俄州:65

我想用扫描器读取它,并忽略':'7065,这是分数字段。但是我想让它读一年。我知道如何设置分隔符来丢弃所有数字和':',但我不知道如何让它只丢弃某些数字。我在说什么实际上可以做到?

+0

如果你是确保前4个字符是必需的一年,为什么不使用'String.substring(0,4)'来解压? – SudoRahul 2013-04-10 05:03:51

+1

斯普利特':'字符,通过它循环,忽略哪一个不是数字 – 2013-04-10 05:05:40

+0

你想读的年份,大学和州只我是对吗? – 2013-04-10 05:15:26

回答

0

我的回答,转贴SANS幽默

Scanner scanner = new Scanner("1945:New York University:70:Ohio State:65"); 
scanner.useDelimiter(":(\\d\\d:?)?"); 

while(scanner.hasNext()) { 
    System.out.println(scanner.next()); 
} 
scanner.close(); 
1

尝试

Scanner sc = new Scanner("1945:New York University:70:Ohio State:65"); 
    sc.useDelimiter(":\\d+:|:\\d+$|:"); 
    while(sc.hasNext()) { 
     System.out.println(sc.next()); 
    } 

输出

1945 
New York University 
Ohio State