我是Java的新手,我正在尝试使用txt文件中的值进行计算。我读过txt文件,它有3个标签,每个标签有三个值
我已经能够读取文件并将列作为索引但不能将单独的值添加到数组中。所以我想要三个独立的数组
读取文件方法
public void read()
{
try
{
FileReader read = new FileReader(file);
String line = null;
while((line = FileReader.readLine()) != null)
{
a.add(line);
}
}
catch (FileNotFoundException e) {}
catch(IOException e) {}
}
处理方法
private void processor () {
for (String li : a)
{
String[] data = li.split("\\s");
Index = Double.parseDouble(data[0]);
Customers = Double.parseDouble(data[1]);
rateOfBuy = Double.parseDouble(data[2]);
}
}
答案 0 :(得分:0)
我认为你没有正确考虑你的数据结构。如果我是你,我会想到这一点有点不同。对我来说,只使用一个简单的数组是最有意义的。为了处理三列的复杂性,我将创建一个名为CustomerRate的新类或其他类似的东西。然后,我将数据转换为属于该类实例的实例变量。这样你就可以拥有一个简单的CustomerRate对象数组,然后访问每个对象存储的数据。这也可能更容易处理整体。
我不确定你要完成的是什么,但我会尽力帮助你 你会创建你的新类是这样的: 你的新班级:
//This is your new class
public class CustomerRate {
private int person;
private double rate;
//constructor
public CustomerRate(int person, double rate) {
this.person = person;
this.rate = rate;
}
//add appropriate getters and setters and whatever else you need
public double getRate() {
return rate;
}
}
使用您文件中的解析数据来创建新的CustomerRate对象。创建对象数组。请注意,这只是一个带有随机数的条目的示例我将要使用,因此您必须使循环和解析工作:
//creating an example customer
CustomerRate customer1 = new CustomerRate(100, 0.5);
//create your collection to store your customer data that you will add/parse
List<CustomerRate> myList = new ArrayList<CustomerRate>();
//adds to list
myList.add(customer1);
//gets element at index and then grabs the rate
double exampleCustomerRate;
exampleCustomerRate = myList.get(0).getRate();
我对此进行了快速编码,因此我可能犯了一些错误,但我希望能让您大致了解应该做些什么。
答案 1 :(得分:-1)
您只需要另外$scope.spanClick = function(){
if(!$scope.shouldClick){
return;//simply do nothing
}
//Do button click logic
}
来存储ArrayList
。像这样:
rateOfBusiness
然后遍历数据并在添加到数组时进行数学运算
String file = "test.txt";
ArrayList<String> a = new ArrayList<String>();
ArrayList<Double> rateOfBusiness = new ArrayList<>(); //Define with your other fields
编辑:即使这解决了您的问题,我也会研究一些面向对象的原则。 IsaacShiffman(或者是9号Oddish,或者不管他的名字是什么)开始研究如何解决这个问题。使您的代码更容易遵循和调试。