我有以下* .txt文件
如何使用额外数组中的关联值在数组或其他内容中提取Times。像
ArrayTime[..., 16:52, 17:07,....]
ArrayG[..., 533, 469,....]
ArrayGd[..., 186, 170,...]
如何从数组中获取值?
感谢您的帮助
答案 0 :(得分:0)
您可以将数组作为JSON对象,并以字符串格式将其保存在文件中。在获取时,您可以读取字符串并轻松将其转换为JSON对象
String json;
FileInputStream stream = new FileInputStream(File);
try {
FileChannel fc = stream.getChannel();
MappedByteBuffer bb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size());
/* Instead of using default, pass in a decoder. */
json = Charset.defaultCharset().decode(bb).toString();
}
finally {
stream.close();
}
JSONObject obj = new JSONObject(json);
答案 1 :(得分:0)
读取文件的每一行,忽略顶行,直到实际表开始。
使用空格作为分隔符来分割每一行,这将为您提供一个包含4列中每一列的数组。将该单行数组中的条目添加到表示每列中所有值的相应ArrayLists中。
以下是一些可以帮助您入门的代码:
ArrayList<String> time = new ArrayList<String>();
ArrayList<String> g = new ArrayList<String>();
ArrayList<String> gd = new ArrayList<String>();
ArrayList<String> td = new ArrayList<String>();
String line = "";
//get a BufferedReader for your file.
while((line = br.readLine) != null){
String row = line.split(" ");
time.add(row[0]);
g.add(row[1]);
gd.add(row[2]);
td.add(row[3]);
}
您必须弄清楚如何跳过不包含数据的顶行,如果您想将值存储为数字而不是字符串,则必须进行转换。但这是你实现目标的总体方式。
注意:如果表格的行中有前导空格,您可能希望在调用split()
方法之前删除它们
答案 2 :(得分:0)
最好以更简单的方式存储变量,例如
array=12:30,11:05,etc..
然后逐行读取文件。用“=”字符拆分该行,然后用逗号分隔第二个字符串以创建一个数组。