2016-02-12 5 views
0

Приносим извинения, если ответ на такой вопрос уже существует, я очень новичок-кодер, и я, возможно, не смог его найти.Проблема с выравниванием номеров

Я работаю над проектом, чтобы дать расстояние, периметр и площадь, учитывая значения x и y трех точек. Указанные точки должны быть округлены до тысячного места, используя команду printf.

Он должен выглядеть следующим образом:

Triangle = {(8,500, 1,250), (2,500, 1,250), (2,500, 9,250)}

Тем не менее, я могу только управлять, чтобы получить:

треугольник = {(8.5001.2502.5001.2502.5009.250

Вот мой код:

public class TriangleCalculator 
{ 

public static void main(String[] args) 
{ 
    System.out.println("Enter the x- and y- coordinates of the first point"); 
    Scanner keyBoard = new Scanner (System.in); 
    double pointOneX = keyBoard.nextDouble(); 
    double pointOneY = keyBoard.nextDouble(); 
      System.out.println("Enter the x- and y- coordinates of the second point"); 
    double pointTwoX = keyBoard.nextDouble(); 
    double pointTwoY = keyBoard.nextDouble(); 
    System.out.println("Enter the x- and y- coordinates of the third point"); 
    double pointThreeX = keyBoard.nextDouble(); 
    double pointThreeY = keyBoard.nextDouble(); 

    System.out.printf("Triangle = { (%.3f", pointOneX); 
    System.out.printf("%.3f", pointOneY); 
    System.out.printf("%.3f", pointTwoX); 
    System.out.printf("%.3f", pointTwoY); 
    System.out.printf("%.3f", pointThreeX); 
    System.out.printf("%.3f", pointThreeY); 
} 

} 

Если бы кто-нибудь мог сказать или показать, как правильно написать инструкцию printf или как правильно выровнять мой код, я был бы очень признателен.

+0

Обратите внимание на скобки и пробелы, добавленные в ' System.out.printf (" Triangle = {(% .3f ", pointOneX);" и продумайте, где еще вам нужны пробелы, запятые и скобки. – doctorlove

ответ

0

Я не вижу ничего о выравнивании в вашем вопросе, только округление и форматирование.

Вы можете, и в этом случае, я думаю, вы должны обрабатывать несколько элементов данных в одном printf вызова:

System.out.printf ("Triangle ={(%.3f ,%.3f) ,(%.3f ,%.3f) ,(%.3f ,%.3f)}", 
    pointOneX, pointOneY, pointTwoX, pointTwoY, pointThreeX, pointThreeY); 

Это для необычного расстояния в вашем примере. Для пробела перед каждой запятой или пробелом перед и после каждой запятой или пробелом только после каждой запятой отрегулируйте соответствующую строку формата.

Помните, что printf не останавливает выходную линию. Если вы хотите, что в переносном коде добавить %n в конце строки формата или для Unix или Windows, то конкретно или \r\n.

+0

Я вижу, что вы пытаетесь сделать этот тип форматирования интуитивно, но я смешивал фактические коды и переменные формата. Я полагал, что существует способ просто использовать один оператор 'printf', который очень ценится. – Random8k

2

Ваш код не будет добавлять скобки самостоятельно.

Try:

System.out.printf("%.3f", pointOneY); 
System.out.printf("),("); 
System.out.printf("%.3f", pointTwoX); 
System.out.printf("%.3f", pointTwoY); 
System.out.printf("),(");  
System.out.printf("%.3f", pointThreeX); 
System.out.printf("%.3f", pointThreeY); 
System.out.printf(")}"); 
Смежные вопросы