编写一个类,读取n.csv文件并创建对象"Account"。这是一个测试。
代码:
import java.io.File;
import java.util.Scanner;
import java.io.FileNotFoundException;
public class AccountTest {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("1234567890989.csv");
Scanner scanner;
try {
scanner = new Scanner(file);
while(scanner.hasNext()) {
scanner.nextLine();
scanner.next("Account");
String pp = scanner.next();
System.out.println(pp);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
文件:
Account Info - 14-03-2014
Account ;1234567890989 ; EUR ;POUPANCA ;SavingsAccount ;
Start Date ;31-10-2013
End Date ;03-01-2014
Date ;Value Date ;Description ;Draft ;Credit ;Accounting balance ;Available balance
31-10-2013 ;31-10-2013 ;SUMMARY ;0.0 ;200.0 ;2600.0 ;2600.0
30-11-2013 ;30-11-2013 ;SUMMARY ;0.0 ;200.0 ;2800.0 ;2800.0
31-12-2013 ;31-12-2013 ;SUMMARY ;0.0 ;200.0 ;3000.0 ;3000.0
02-01-2014 ;02-01-2014 ;TRANSF ;0.0 ;300.0 ;3300.0 ;3300.0
02-01-2014 ;02-02-2014 ;TRANSF ;0.0 ;300.0 ;3600.0 ;3600.0
03-01-2014 ;03-01-2014 ;TRANSF ;0.0 ;300.0 ;3900.0 ;3900.0
退货';1234567890989',但我只想有'1234567890989'并将其格式化为Long。
如果我理解正确,这应该可以工作-
if (scanner.hasNextLine()) { // Check for the line.
scanner.nextLine(); // read the line.
if (scanner.hasNext("Account")) { // Check for account.
scanner.next("Account"); // read the field.
if (scanner.hasNext()) { // Check if there is more.
String pp = scanner.next(); // read it.
if (pp.startsWith(";")) { // remove a leading ';'
pp = pp.substring(1);
}
long lpp = Long.parseLong(pp); // convert to long.
System.out.println(lpp); // print it.
}
}
}
输出为
1234567890989
试试这个:
...
String pp = scanner.next();
String qq;
qq = StringUtils.strip(StringUtils.trim(pp), ";");
StringUtils是Apache Commons Lang 的一部分
CCD_ 1从字符串的开头和结尾移除字符,所以在调用strip之前一定要修剪空白。
默认情况下,Scanner
使用空白作为分隔符。因此,Scanner.next
会查看文件中的所有空间,并以此来分隔值,从而捕获分号。
您可以更改与useDelimiter
方法一起使用的分隔符。沿着这些路线的一些东西应该起作用:
Scanner scanner = new Scanner(new File("1234567890989.csv")).useDelimiter(";");
while (scanner.hasNext())
{
String token = scanner.next();
...
}
要将您的令牌转换为long
,您必须决定令牌是否应为长,然后使用Long.parseLong(token)
。