У меня есть текстовый файл, который был прочитан в список, а затем преобразован в массив. В текстовом файле каждая строка является элементом двумерного массива. Однако преобразование из текстового файла в массив помещает элементы в неправильный порядок, который не совпадает с файлом.2D-массивы сортировки
Вот мой код до сих пор:
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
/**
* @(#)ReadFromFile.java
*
*
* @author
* @version 1.00 2016/2/25
*/
public class ReadFromFile {
public static String[] readFile(String path){
try{
int i = 0;
int length = Files.readAllLines(Paths.get(path)).size();
String[] results = new String[length];
for(String line : Files.readAllLines(Paths.get(path))){
results[i++] = line;
}
return results;
} catch(IOException e) {
e.printStackTrace();
return null;
}
}
public static void main(String[] args) {
// Operation for Prescription File
String[] lines = readFile("prescription.txt");
String[] array = new String[7];
ArrayList<String> mylist = new ArrayList<String>();
for(String line : lines){
for (String s : line.split(" ")){
mylist.add(s);
}
}
String[] pre = mylist.toArray(array);// Stores the elements in prescription txt
System.out.println(Arrays.toString(pre));
// Operation for medicament file`enter code here`
String[] lines2 = readFile("medicaments.txt");
ArrayList<String> mylist2 =`enter code here` new ArrayList<String>();
int count = 0;// varıable for countıng lines of medicaments file
for(String line2 : lines2){
count++;
for (String s : line2.split(" ")){
mylist2.add(s);
}
}
String[] array2 = new String[count * 5];
String[] med = mylist2.toArray(array2);// Stores the elements in prescription txt
//Converting (medicaments.txt) 1d array into 2d array
String array2d[][] = new String[count][5];
for(int i=0; i<count;i++){
for(int j=0;j<5;j++){
array2d[i][j] = med[(j*count) + i];
}
}
System.out.println(Arrays.deepToString(array2d));
// Initialize array variables to compare
String medicine1 = pre[3];
String medicine2 = pre[5];
String numOfmedicine1 = pre[4];
String numOfmedicine2 = pre[6];
String socSecurity = pre[1];
String date = pre[1];
}
}
А вот мой текст документа:
aspirin ssk 01.01.2016 31.01.2016 5.5
aspirin ssk 01.01.2016 31.01.2016 4
aspirin es 01.01.2016 31.01.2016 5.4
aspirin bk 01.01.2016 31.01.2016 6.1
aspirin ssk 01.01.2016 31.01.2016 5.4
novalgin ssk 01.01.2016 31.01.2016 8.3
Выходные элементы в каждой строке выйти в другом порядке:
[[aspirin, ssk, 01.01.2016, 31.01.2016, 5.4], [ssk, 01.01.2016, 31.01.2016, 6.1, novalgin], [01.01.2016, 31.01.2016, 5.4, aspirin, ssk], [31.01.2016, 4, aspirin, ssk, 01.01.2016], [5.5, aspirin, bk, 01.01.2016, 31.01.2016], [aspirin, es, 01.01.2016, 31.01.2016, 8.3]]
Как это исправить?
Текстовый документ не был напечатан, как я хочу это здесь: https://d1b10bmlvqabco.cloudfront.net/attach/ike11m7a4ot3k5/h8d6286u53f76o/il23enxfun91/medicaments.txt –
пытаются упростить код таким образом, что будет читаемым – LordTitiKaka
Примечание что вы импортируете два текстовых файла в этот код. Можете ли вы предоставить полный образец ввода? –