2011-11-09 3 views
0

Я пытаюсь создать программу, которая решает уравнения, я хочу, чтобы ответ отображался правильным образом, если число отрицательное, для отображения -x, а не + -x, например, Eq1: 4x-3 и не 4x + -3, но когда положительно отображать 4x + 3. Я не могу использовать знак плюса внутри цитат. Я хотел использовать? : оператор. я пытался что-то вроде этогоJava Question mark in println()

System.out.println("Eq1: "+ ((a11>0) ? (+ "+" + (int)a11) : + (int)a11) +"*x1+"); 

Эта линия должна печатать отрицательное число (т.е. будет -2 * x1), и если он положительный он должен показать знак + и добавить номер, но он дает я ошибка вокруг + "+" +

Любые мысли? Благодаря!

+0

я не очень понимаю, что вы хотите сделать, но тот же код без ошибок синтаксиса: System.out.println ("EQ1:" + ((a11> 0)? ("+" + (int) a11): + (int) a11) + "* x1 +"); – MarioP

ответ

0

Я бы сделал переменная всегда положительна, например, так

"Eq1: " + (a11 >= 0 ? " + " + (int)a11 : " - " + (int)(-a11)) + " * x1 +" 
+0

Спасибо, что я хотел –

+0

@Downvoter какие-то мысли о том, как это можно улучшить? – corsiKa

0

Вы пробовали System.out.printf()? Вот ссылка. printf

-1

я не очень понимаю, что вы хотите сделать, но попробовать это:

System.out.println("Eq1: "+ ((a11>0) ? ("+" + (int)a11) : + (int)a11) +"*x1+"); 

это тот же самый код как ваш, но без синтаксической ошибки.

+1

Используйте комментарии к комментариям, ответы на них. –

+0

@Vash: это ответ. он делает именно то, что хочет. – MarioP

0

Вам нужно сформировать строку

String.format("Ed1: %+d x %+d", v1,v2); 

Где

%+d - это выражение форматирования, что означает «прокат отображать номер с надписью»

v1 и v2 являются числовые значения ,

Exection пример

v1 v2 result 
    1 1 Ed1: +1 x +1 
    2 0 Ed1: +2 x +0 
    3 -2 Ed1: +1 x -2 
-3 2 Ed1: -3 x +2 
-2 -1 Ed1: -2 x -1 
-1 -4 Ed1: -1 x -4 

More

0

Честно говоря, тройной оператор уже менее читабельным, чем простой, если/другое заявление. Но если он используется для конкатенации (с использованием оператора +) символа «+», он становится действительно нечитаемым.

Как об этом:

String s = Integer.toString(a11); 
if (a11 > 0) { 
    s = "+" + s; 
} 
System.out.println("Eq1: 4x" + s); 
Смежные вопросы