java - 从文件中读取并将它们解析为不同的数组

标签 java arrays string parsing objectmapper

我将读取文件内容作为我的程序的输入。

我将它存储到一个字符串中并将其拆分为 2 个字符串。

File file = new File("question.txt");
PrintWriter pw = new PrintWriter(file);
pw.write("81 : (1,53.38,$45) (2,88.62,$98) (3,78.48,$3) (4,72.30,$76) (5,30.18,$9) (6,46.34,$48)");
pw.close();
BufferedReader br = new BufferedReader(new FileReader(file));
String line = br.readLine();
Map<Integer, Object> map = new HashMap<Integer, Object>();
int i = 0;
Demo d = new Demo();
String[] part = line.split(":");
String part1 = part[0].trim();
String part2 = part[1].trim();

输入: 81 : (1,53.38,$45) (2,88.62,$98) (3,78.48,$3) (4,72.30,$76) (5,30.18, $9) (6,46.34,$48)

输出:

totalWeight = 81;
index[] = {1,2,3,4,5,6}; 
weight[] = {53.38,88.62,78.48,72.30,30.18,46.34};  
value[] = {45,98,3,76,9,48}; 

第二个字符串在括号内包含 3 个值。第一个数字是“索引”,第二个数字是“权重”,第三个数字是“值”。
我如何将它拆分并存储到 3 个不同的数组中?

我知道一种方法是将其解析为具有 3 个数组的类的对象并为它们分配值。
但有没有更好的方法呢?

最佳答案

String[] part2 = part[1].replace("(", "").trim().split(")");
List<String> indices = new ArrayList<String>();
List<String> weights= new ArrayList<String>();
List<String> values = new ArrayList<String>();

for (String s : part2)
{
   String item = s.split(",");
   indices.add(item[0]);
   weights.add(item[1]);
   values.add(item[2]);
}

// to get them as arrays
String[] allWeightsArray = weights.toArray(new String[]); ...

关于java - 从文件中读取并将它们解析为不同的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45640392/

相关文章:

c - 从C中的数组中随机选择字符串

c - 用 C 中的另一个数组对多维数组进行排序

java - 检查jsp是否包含两次

java - Sugar ORM 中的 count() 方法是否有任何理由采用 String[] 参数而不是 String...?

c - C程序中变量的值不变

c++ - 在 C++ 中用 %20 替换字符串中的空格

C:使用 printf 等精度说明符分配字符串变量

c# - 将 XmlDocument 转换为字符串

java - 尝试...最后...没有捕获生成异常

java - dynjs 与 Node 上 javascript 中字符串函数的性能比较