2014-03-05 41 views
0

我有下面的代码,我从一个CSV文件中值,并把它们放到一个ArrayList,这样我可以用它们来插入数学方程式。入门从CSV文件摆脱逗号?

public class Example1 
{ 
public static void main(String[] args) throws InvalidFormatException, IOException{ 
    ArrayList arr=new ArrayList(); 
File f=new File("C:\\java\\marchcalllast.csv"); 
Scanner in=new Scanner(f); 
while(in.hasNext()) 
{  
arr.add(in.next()); 
} 
System.out.println("Data From ArrayList"); 
int size = arr.size(); 
System.out.println(arr); 
System.out.println(size); 

for (int i = 0; i < arr.size(); i++){ 
    String item = (String) arr.get(i); 
System.out.println("Item " + i + " : " + item); 
} 

输出给了我

Item 0 : 15.9, 

Item 1 : 13.7, 

Item 2 : 12.35, 

Item 3 : 10, 

Item 4 : 8.45, 

Item 5 : 7.15, 

Item 6 : 6, 

Item 7 : 5.1, 

Item 8 : 4.3, 

Item 9 : 3.55, 

我想这些值后,以摆脱逗号的使用它们插入到一个数学方程。有没有办法做到这一点?另外,由于这些值是字符串,我可以将它们用于数学方程吗?

+1

如果你这样做是“真正的”,使用图书馆。 CSV是一个多头怪物。 – user2864740

回答

1

您可以使用分隔符,进行分割。分割字符串后,它也会忽略逗号。

Scanner s = new Scanner(input).useDelimiter(","); 

或者您尝试使用此按钮,删除逗号

item.replace(",",""); 
+0

大重复的答案 - 样,6分钟我:-) – Smutje

1

您可以使用String.split到一个文本行分割成字符串数组。例如:

第1部分:获取逗号

String line = "13.7, 12.35, 10, 8.45"; String[] elements = line.split(","); // elements = "13.7", " 12.35", " 10", " 8.45"

之间的字符串值,以确保你刚刚起步的号码(而不是任何空格),你可以调整正则表达式来是这样的:

line.split("\\s*,\\s*")

第2部分:将字符串转换为双打数学CALCULAT离子

你的数字看起来就像他们是小数。所以,你可以使用Double.valueOf()将它们转换为双打。

Double.valueOf("1.2")

+0

感谢您的回答大家以后我真的很感激。我用“useDelimiter”,它的工作!但是,我会在哪里插入Double.valueOf()? – user3251256