2016-10-13 2 views
0

Я работаю над программой java, чтобы напечатать абзац аккуратно. Однако, как это сейчас, программа печатает вывод на консоль, как так:Печатать пункт аккуратно в другом файле

private static void printSolution(String[] words, int[] print, int n,int width) { 
    if (n >= 0) { 
     printSolution(words, print, print[n] - 1, width); 
     int index = print[n]; 
     System.out.printf("%s", words[index]); 
     width -= words[index].length(); 
     ++index; 
     for (; index <= n; index++) { 
      System.out.printf(" %s", words[index]); 
      width -= words[index].length() + 1; 
     } 

     while (width > 0) { 
      System.out.print(" "); 
      width--; 
     } 

     System.out.println("|"); 
    } 
} 

Теперь я хочу, чтобы изменить его немного и распечатать вывод в другой файл (output.txt), но я не такая знакомая Java, поэтому мне нужна помощь в этом. Так что я не знаю, как это сделать, это сохранить результат в String и отформатировать его так, как делает printf.

ответ

1

Вы можете использовать string.Format(), чтобы сделать форматирование строк

Так, например, эта линия:

System.out.printf("%s", words[index]); 

Можно сделать так:

String newStr = String.format("%s", words[index]); 

И тогда вы можете добавьте остальные строки в newStr. Если вы хотите записать newString в файл, используйте BufferedWriter.

Кроме того, ваш код вызова бросает исключение StackOverflow здесь

printSolution(words, print, print[n] - 1, width); 
+0

Спасибо так много !! очень четкое объяснение! – useruser1412

Смежные вопросы