#java
#java
Вопрос:
Попытка сканирования файла, содержащего множество строк, несколько типов переменных и несколько сегментов (возможно, не лучшее слово для его описания?)
По сути, это мой файловый ввод (заполнители для лучшего объяснения):
String1
int1
double1
String2
int2
double2
String3
int3
double3
Мне интересно, как лучше всего прочитать эти данные, чтобы их можно было использовать в базовых уравнениях.
Я изучал использование Scanner, но, похоже, из-за нескольких строк мне может быть лучше использовать BufferedReader, а затем преобразовывать каждую строку из строки в целое число или двойное число, если это необходимо (или я слишком усложняю это?).
У меня есть некоторый предыдущий опыт работы с C , но ничего, кроме базовых циклов for и массивов, поэтому, пожалуйста, постарайтесь, чтобы это было как можно более понятным и понятным для начинающих.
Комментарии:
1. Это
String#
только одно слово или оно может содержать более одного слова (разделенных пробелом)?2. @Pshemo всего одно слово 🙂
Ответ №1:
Поскольку ваш файл содержит строку, int,double, пустую строку, string,int,double,… Для этого мы можем легко использовать цикл while. Создайте 3 списка массивов, которые содержат соответствующие строки, целые числа и удвоения.
public static void main(String[] args){
Scanner file = new Scanner(new File("file path here"));
ArrayList<String> strings = new ArrayList<String>();
ArrayList<Integer> ints = new ArrayList<Integer>();
ArrayList<Double> doubles = new ArrayList<Double>();
while(file.hasNextLine()){
strings.add(file.nextLine());
ints.add(Integer.parseInt(file.nextLine()));
doubles.add(Double.parseDouble(file.nextLine()));
if(file.hasNextLine())
file.nextLine();
}
file.close();
}
Комментарии:
1. Сначала спасибо за ответ! Как только эти данные окажутся в списке массивов, как мне использовать каждую переменную?
2. Удалось завершить все это благодаря вашему комментарию и коду. Спасибо!