Как добавить новую строку каждую n-ую позицию в списке? - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь сделать так, как говорит заголовок, но я сейчас получаю неправильный вывод, что я делаю неправильно в этом фрагменте кода?

public void AAAAA(String thetext, int numb)
  {
    List<String> items = new LinkedList<String>(Arrays.asList(thetext.split(" "))); //split string to individual characters
    int len = items.size(); //get size of string
    for(int j = 0; j < len; j++){ // loop through list
        if(j % width == 0){  
            items.add(numb, "\n");
        }
    } 
    System.out.println(items);
  }

}

пример текста: "привет, меня зовут Боб, я люблю ласкать милых толстых собак"

ожидаемый результат, если numb равно 3;

hello my name

is bob i

like to pet

cute fat dogs

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Если вы просто хотите напечатать новую строку для каждых 3 слов (для numb = 3), вы можете изменить свой метод, чтобы распечатать содержимое списка и использовать там свою логику по модулю.Нет необходимости добавлять или изменять список.

0 голосов
/ 13 сентября 2018

Попробуйте комбинацию использования модуля и добавления в новый список

String thetext = "hello my name is bob i like to pet cute fat dogs";
int splitOn = 3;

String arr [] = thetext.split(" ");
List<String> newList = new ArrayList<String>();

StringBuilder buf = new StringBuilder();
for (int x = 0; x < arr.length; x++) {

    buf.append(arr[x]).append(" ");
    if ((x + 1) % splitOn == 0) {
        newList.add(buf.toString());
        newList.add(" ");
        buf = new StringBuilder();
    }
}
newList.add(buf.toString());

for (String line : newList) {
    System.out.println(line);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...