将双变量值存储到列表<string>
store double variable values in to list<string>
我正在处理具有非常大数据集的 csv 文件。在阅读文件时我提取了第三名(平衡)';'使用 while 循环 iteration.i 将每行的数值分开 iteration.i 想将这些值(BALANCE)存储到 listOF string.how 中,我可以这样做吗?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.*;
public static void main(String[] args)throws IOException {
String filename = "bank-full.csv";
File file = new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
int count=0;
while (inputStream.hasNext())
{
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
System.out.println(BALANCE);
inputStream.close();
}
catch (FileNotFoundException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
store double variable values in to list
像这样:
List<String> l = new ArrayList<String>();
l.add(Double.toString(42.0));
或者,如果您尝试构建双打列表,则使用包装器类型,如下所示:
List<Double> l = new ArrayList<Double>();
l.add(42.0); // The double will be autoboxed as a Double.
String filename = "bank-full.csv";
List<Double> list = new ArrayList<Double>();
File file = new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
int count = 0;
while (inputStream.hasNext()) {
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
list.add(BALANCE);
System.out.println(BALANCE);
inputStream.close();
}
}
catch (FileNotFoundException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
}
您可以将列表初始化为 'Double' 类型,也可以在将双打添加到列表之前将其转换为字符串。这或多或少取决于您打算如何使用该列表。您是否会将列表中的信息存储为双打?或者您将允许用户以字符串的形式编辑值吗?举几个例子。
如果您想将余额值保存在字符串列表中,您可以直接将它们添加到其中,如下所示:
List<String> balancesList = new ArrayList<String>();
在你的 while 循环中:
String data = inputStream.next();
String[] values = data.split(";");
balancesList.add(values[2]); //Just add it to the list here
因为values[2]
中的余额值是字符串。
尝试使用 ArrayList or LinkedList:它们都扩展了 AbstractList,因此它们具有方法 add(T),其中 T 可以是任何对象类型(在您的示例中为 Double)。
在您的情况下,您应该这样做:
List<Double> container = new ArrayList<Double>();
while (inputStream.hasNext()) {
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
System.out.println(BALANCE);
container.add(BALANCE);
}
inputStream.close();
//now "container" contains all balance values
此外,您不应该在读取时关闭输入流,而是在 while 循环之后关闭它。
如果你想以相反的顺序存储它们,使用这个add method它允许你在列表的每个位置添加一个元素,所以你可以这样做:
container.add(container.size(), BALANCE);
我正在处理具有非常大数据集的 csv 文件。在阅读文件时我提取了第三名(平衡)';'使用 while 循环 iteration.i 将每行的数值分开 iteration.i 想将这些值(BALANCE)存储到 listOF string.how 中,我可以这样做吗?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.*;
public static void main(String[] args)throws IOException {
String filename = "bank-full.csv";
File file = new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
int count=0;
while (inputStream.hasNext())
{
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
System.out.println(BALANCE);
inputStream.close();
}
catch (FileNotFoundException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
store double variable values in to list
像这样:
List<String> l = new ArrayList<String>();
l.add(Double.toString(42.0));
或者,如果您尝试构建双打列表,则使用包装器类型,如下所示:
List<Double> l = new ArrayList<Double>();
l.add(42.0); // The double will be autoboxed as a Double.
String filename = "bank-full.csv";
List<Double> list = new ArrayList<Double>();
File file = new File(filename);
try {
Scanner inputStream = new Scanner(file);
inputStream.next();
int count = 0;
while (inputStream.hasNext()) {
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
list.add(BALANCE);
System.out.println(BALANCE);
inputStream.close();
}
}
catch (FileNotFoundException ex) {
Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
}
}
您可以将列表初始化为 'Double' 类型,也可以在将双打添加到列表之前将其转换为字符串。这或多或少取决于您打算如何使用该列表。您是否会将列表中的信息存储为双打?或者您将允许用户以字符串的形式编辑值吗?举几个例子。
如果您想将余额值保存在字符串列表中,您可以直接将它们添加到其中,如下所示:
List<String> balancesList = new ArrayList<String>();
在你的 while 循环中:
String data = inputStream.next();
String[] values = data.split(";");
balancesList.add(values[2]); //Just add it to the list here
因为values[2]
中的余额值是字符串。
尝试使用 ArrayList or LinkedList:它们都扩展了 AbstractList,因此它们具有方法 add(T),其中 T 可以是任何对象类型(在您的示例中为 Double)。
在您的情况下,您应该这样做:
List<Double> container = new ArrayList<Double>();
while (inputStream.hasNext()) {
String data = inputStream.next();
String[] values = data.split(";");
double BALANCE = Double.parseDouble(values[2]);
System.out.println(BALANCE);
container.add(BALANCE);
}
inputStream.close();
//now "container" contains all balance values
此外,您不应该在读取时关闭输入流,而是在 while 循环之后关闭它。
如果你想以相反的顺序存储它们,使用这个add method它允许你在列表的每个位置添加一个元素,所以你可以这样做:
container.add(container.size(), BALANCE);