从CSV文件中删除逗号?

时间:2014-03-05 20:08:31

标签: java csv arraylist

我有以下代码,我从csv文件中获取值并将它们放入ArrayList中,以便我可以使用它们插入数学方程式。

    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,

我希望在这些值之后删除逗号以使用它们插入数学方程式。有没有办法做到这一点?此外,由于这些值是字符串,我可以将它们用于数学方程吗?

3 个答案:

答案 0 :(得分:1)

您可以使用分隔符按,分割。它在分割String后也会忽略逗号。

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

或者您尝试使用此功能删除逗号

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

答案 1 :(得分: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部分:将字符串转换为数学计算的双打

您的号码看起来像是十进制数字。因此,您可以使用Double.valueOf()将它们转换为双打。

Double.valueOf("1.2")

答案 2 :(得分:0)

使用分隔符(http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html#useDelimiter(java.lang.String))提供您的Scanner,这样它就可以自行删除逗号。

Scanner in = new Scanner(f).useDelimiter(",");