Преобразование строк текста из файла в массив строк - PullRequest
0 голосов
/ 13 декабря 2018

Я прочитал информацию в файле .txt, и теперь я хотел бы сохранить строки информации из текста в массиве строк или переменной.

Информация в файле .txt такая, как указано:

Onesimus, Andrea
BAYV
Twendi, Meghan
RHHS
Threesten, Heidi
MDHS

Я хочу сохранить BAYV, RHHS, MDHS в другом массиве из имен.

import java.io.File;
import java.util.Scanner;

class testing2 {
 public static void main(String [] args) throws Exception {


File Bayviewcamp = new File ("H:\\Profile\\Desktop\\ICS3U\\Bayviewland Camp\\Studentinfo.txt");
Scanner scanner = new Scanner (Bayviewcamp);

while (scanner.hasNextLine())
  System.out.println(scanner.nextLine());

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Проверьте, совпадают ли имена с регулярным выражением "[A-Z]+"

        List<String> upperCaseList = new ArrayList<>();
        List<String> lowerCaseList = new ArrayList<>();

        while (scanner.hasNextLine()) {
              String[] names = scanner.nextLine().split(",");
              for(String name:names) {
                  if(name.matches("[A-Z]+")) {
                      upperCaseList.add(name);
                  }
                  else {
                      lowerCaseList.add(name);
                  }
              }
        }

В соответствии с вашим примером некоторые имена имеют начальные пробелы.вам, возможно, придется урезать эти пробелы, прежде чем сравнивать с регулярным выражением

              for(String name:names) {
                  if(name.trim().matches("[A-Z]+")) {
                      upperCaseList.add(name.trim());
                  }
                  else {
                      lowerCaseList.add(name.trim());
                  }
              }
0 голосов
/ 13 декабря 2018

Ниже у кода есть несколько ограничений, таких как:

  1. Должен быть указан формат, который вы сказали (имя и значение следующей строки)
  2. Размер массива по умолчанию равен 100, но вы можете изменить его какВы хотите
  3. Под именем я подразумеваю одну строку: (Onesimus, Andrea) она находится под первым индексом в массиве имен.

    private static final int ARRAY_LENGTH = 100;
    
    public static void main(String[] args) throws FileNotFoundException {
    
      boolean isValue = false;
      File txt = new File("file.txt");
      Scanner scanner = new Scanner(txt);
    
      String[] names = new String[ARRAY_LENGTH];
      String[] values = new String[ARRAY_LENGTH];
      int lineNumber = 0;
      while (scanner.hasNextLine()) {
        if (isValue) {
            values[lineNumber / 2] = scanner.nextLine();
        } else {
            names[lineNumber / 2] = scanner.nextLine();
        }
        isValue = !isValue;
        lineNumber++;
      }
      for (int i = 0; i < ARRAY_LENGTH; i++) {
        System.out.println(names[i]);
        System.out.println(values[i]);
      }
    }
    

Ниже кода возврат разделенимена:

private static final int ARRAY_LENGTH = 100;

public static void main(String[] args) throws FileNotFoundException {
    boolean isValue = false;
    File txt = new File("file.txt");
    Scanner scanner = new Scanner(txt);

    String[] names = new String[ARRAY_LENGTH];
    String[] values = new String[ARRAY_LENGTH];
    int namesNumber = 0;
    int valuesNumber = 0;
    while (scanner.hasNextLine()) {
        if (!isValue) {
            String tempArrayNames[] = scanner.nextLine().split(",");
            values[valuesNumber++] = tempArrayNames[0].trim();
            values[valuesNumber++] = tempArrayNames[1].trim();
        } else {
            names[namesNumber++] = scanner.nextLine();
        }
        isValue = !isValue;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...