Как убрать пробел из конца строки в цикле for - PullRequest
0 голосов
/ 18 февраля 2019

Проблема следующая, в конце каждой строки программа записывает пробел.Как это убрать?

public class Szorzotabla {

    public static void main(String[] args) {
        for (int i = 1; i < 10; i ++) {
            for (int j = 1; j < 10; j++) {
                System.out.print(i * j + " ");
            }
            System.out.println();
        }
    }

}

Я ожидал вывод таблицы умножения без пробела в конце каждой строки.

Ответы [ 4 ]

0 голосов
/ 18 февраля 2019
System.out.print(i * j + ( j < 9 ? " ", "" )); 

когда j меньше 9 (последнего) конкататного пространства, иначе конкатат пуст -

0 голосов
/ 18 февраля 2019

Вы можете использовать этот способ:

String space;
for (int i = 1; i < 10; i ++) {
    space = ""; // declare a variable here
    for (int j = 1; j < 10; j++) {
        System.out.print(space + i * j); // and note here to change the order
        space = " "; // after the first iteration set a space to the variable
    }
    System.out.println();
}
0 голосов
/ 18 февраля 2019

Есть несколько способов решить эту проблему.Одним из более чистых решений может быть использование встроенной в Java возможности объединения строк (добавлено в Java 8, если я помню).

for (int i = 1; i < 10; i++) {
    String[] products = new String[9];
    for (int j = 1; j < 10; j++) {
        products[j-1] = String.valueOf(j * i);
    }
    System.out.println(String.join(" ", products));
}
0 голосов
/ 18 февраля 2019

Вы получаете пробел в конце строки, потому что вы печатаете пробел в конце каждого i*j, даже если вам не нужен один для последней строки каждой строки.

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

for(int i = 1; i < 10; i ++) {
    System.out.print(i);
    for(int j = 2; j < 10; j++) { //start j at 2
        System.out.print(" " + i * j);
    }
    System.out.println();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...