我有以下代码,我从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,
我希望在这些值之后删除逗号以使用它们插入数学方程式。有没有办法做到这一点?此外,由于这些值是字符串,我可以将它们用于数学方程吗?
答案 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(",");