2015-06-12 6 views
-2

Я пытаюсь отформатировать вывод из того, что я написал, чтобы отобразить список простых чисел (Eratosthenes) до определенного количества результатов на строку. Нужно ли их разместить в Array, чтобы выполнить это? Мне не удалось реализовать свое подразделение, кроме .split("");, которое отобразило бы одну строку для каждого из них и индекс аргумента System.out.format(); сайта Oracle, чтобы указать длину. Тем не менее, для этого требуется, чтобы символы были известны. Я печатаю его следующим образом, которое, конечно же, создает бесконечную линию.Вывод алгоритма на длину начинается с новой строки

for (int count = 2; count <= limit; count++) { 
     if (!match[count]) { 
      System.out.print(count + ", "); 
     } 
    } 

Есть ли способ, чтобы просто позвонить System.out.print("\n"); с if(...>[10] условием при System.out.print() поработает, например в 10 раз? Возможно, я что-то пропустил, относительно новый для Java. Заранее благодарим за любой совет или ввод.

+0

Следите за тем, сколько простых чисел вы указали, а затем просто 'System.out.println(); num = 0; ' – twentylemon

ответ

1

Вы можете просто создать некоторую ценность int, например.

int i = 1; 

... и прирастить его значение каждый раз, когда Sysout работает.

Что-то вроде этого:

int i = 1; 
for (int count = 2; count <= limit; count++) { 
    if (!match[count]) { 
     if (i%10 == 0) 
      System.out.print(count+ "\n"); 
     else 
      System.out.print(count + ", "); 
     i++; 
    } 
} 
+1

Это отлично сработало! Только добавление - это 'System.out.print (count +", \ n ");' хранит запятую, когда вызывается 'if'. – Austin

+0

Yeap, вы правы. Виноват. :) – null

2

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

... 
int num = 0; 
//loop 
for(int count = 2; count <= limit; count++) 
{ 
    if(!match[count]) 
    { 
     if (num == 10) { System.out.print("\n"); num = 0; }//alternatively, System.out.println(); 
     System.out.print(count + ","); 
     num++; 
    } 
} 
... 
+0

Это было отличное решение. Спасибо. (Первая строка уменьшена на 1). – Austin

+0

Ах. Ты прав. Я вижу исправление. Простой по одному, в обычном режиме. –

1

Попробуйте это:

int idx=1; 
int itemsOnEachLine=10; 
for(int count = 2; count <= limit; count++) 
{ 
    if(!match[count]) 
    { 
     System.out.print(count+(idx%itemsOnEachLine==0?"\n":",")); 
     idx++; 
    } 
} 

вы идете увеличивая счетчик (IDX) вместе с каждой записи, каждые 10 приращений (IDX модуль упругости 10 == 0), вы будете печатать новый символ линии, иначе символ «,».

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

  • Нет связанных вопросов^_^