Вращающийся список <Character>и ведение номера слова - PullRequest
0 голосов
/ 21 ноября 2018

У меня нет проблем с этой проблемой, и я хотел бы получить обратную связь.

В настоящее время я пытаюсь повернуть строку вправо строка за строкой (входные данные поступают из файла).На входе может быть много строк, поэтому вращение должно происходить в каждой строке.Например, если повернуть это вправо на 5 "и разрывы строк ^ $ @", то получится: "^ $ @ и разрывы строк"

Теперь для моего кода: я работаю со списком исделал следующее (извините за случайные строки печати, отлаживал старый способ:]):

 private static List<String> rflag(String value, List<String> lines) {
    List<String> newLines = new ArrayList<>();


    int rvalue = Integer.parseInt(value);

    for (String line : lines) {
        StringBuilder sb = new StringBuilder();

        if (!line.isEmpty()) {
            List <Character> chars=  new ArrayList<>();

            for(char ch: line.toCharArray()){
                chars.add(ch);
            }

            Collections.rotate(chars, rvalue);


            sb.append(chars);
           // System.out.println("sb" + sb);
            String text = sb.toString()
                    .replace(",", "")  //remove the commas
                    .replace("[", "")  //remove the right bracket
                    .replace("]", "")  //remove the left bracket
                    .trim();
            newLines.equals(text);
            //System.out.println("nl" + newLines); //taking a look at output
           //System.out.println("t-" + text); //taking a look at output

        }

    }


    return newLines;
}

Если я введу что-то вроде «abcXYZ», мой вывод будет [b, c, X,Y, Z, a] или bcXYZa с удалением скобок и запятых.

Моя главная проблема заключается в том, что, хотя я могу удалить скобки и запятые, я не сохраняю строки или слова во входных данных.Кто-нибудь может подсказать мне какие-нибудь идеи (или альтернативы)?Я чувствую, что могу обдумать это, но я потратил довольно много времени и разочаровался: \

Спасибо заранее.

1 Ответ

0 голосов
/ 21 ноября 2018

Изменение

`.replace(",", "")  //remove the commas`

на

`.replace(", ", "")  //remove the commas`

заставляет этот код работать так, как вы ожидаете.

`System.out.println(rflag("2", Arrays.asList("and line breaks")));//output: ksand line brea`

("и разрывы строк ^ $ @"в настоящее время выводом является «^ $ @ andlinebreaks», но это должно быть «^ $ @ and breaks».)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...