Сплит для выпуска линии - PullRequest
0 голосов
/ 24 января 2020

У меня есть код:

public static CuttingTemplate parseCuttingTemplate(String[] lines) {


        int size = lines.length;
        int[] arr = new int[size];

        int i;
        for(i = 0; i < size; ++i) {
            if (i == 0) {
                arr[i] = Integer.parseInt(lines[i]);
            }

            if (i >= 1) {
                arr[i] = Integer.parseInt(lines[i]);
            }
        }

        int width = arr[0];
        int height = arr[0];
        CuttingTemplate ct = new CuttingTemplate(width, height);
        return ct;
    }

Мне нужно найти способ добавить .split(";") и .split("->") в мои строки. TXT-файл готов к чтению, и теперь мне просто нужно добавить к нему «правило», но я не уверен, где ...

Ответы [ 2 ]

1 голос
/ 24 января 2020

Я не уверен, что полностью понимаю вопрос, но исходя из ваших идентичных arr[i] = Integer.parseInt(lines[i]); строк, я предполагаю, что вы хотите разделить на ; в одном случае и разделить на -> в другом случае. Ваши lines[i] - это отдельные String строки, над которыми вы зацикливаетесь, поэтому вы можете сделать что-то вроде этого:

if (i == 0) {
  String[] splitBySemicolon = lines[i].split(";");
  // Get the integer before the ';':
  arr[i] = Integer.parseInt(splitBySemicolon[0]);
  // or alternatively:
  // Get the integer after the ';':
  arr[i] = Integer.parseInt(splitBySemicolon[1]);
}
// Minor note: you loop in the range [0, size),
// so you can just use an else here since i cannot be negative
else{
  String[] splitByArrow = lines[i].split("->");
  // Get the integer before the '->':
  arr[i] = Integer.parseInt(splitByArrow[0]);
  // or alternatively:
  // Get the integer after the '->':
  arr[i] = Integer.parseInt(splitByArrow[1]);
}

Например, допустим, что ваш массив строк содержит ["1;header", "3->something", "4->somethingMore"], код выше (использование [0] для индексации строковых массивов) приведет к arr = [1, 3, 4].

Попробуйте онлайн.

Но, не зная вашего фактического lines массива, я могу только догадываться о вашем предполагаемом поведении.

1 голос
/ 24 января 2020

Вы хотите разделить текст на ; и ->? Также операторы if в l oop не нужны, поскольку они оба выполняют одно и то же действие независимо от того, что arr[i] = integer... само по себе должно go одно и то же

...