2016-10-08 3 views
-7

Je suis en train de représenter une équation dans ce format: "a = bx + c"toString d'une équation linéaire

  • Si b est 0, il doit revenir « a = c ».
  • Si c est 0, alors il devrait revenir « a = bx »
  • En outre, quand c est négatif, il ne devrait pas retourner quelque chose comme "5 = 8 x + -7"
  • Et quand b = 1, il ne devrait pas montrer le coefficient de x.

Pouvez-vous m'aider?

+0

Bienvenue sur Stack Overflow! S'il vous plaît, prenez le [tour], jetez un coup d'œil, et lisez [help], en particulier [* Comment poser une bonne question? *] (/ Help/how-to-ask) –

+0

On dirait que chacun de ces les conditions que vous avez listées finiront comme une sorte d'instruction 'if' dans votre code. Vous avez déjà fait le plus dur - en élaborant ce que tous les différents cas devraient être. Maintenant, allez à écrire du code. –

+0

http://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form –

Répondre

0

Il suffit de construire l'étape de chaîne par étape dans un StringBuilder:

@Override 
public String toString() { 
    StringBuilder sb = new StringBuilder(a).append(" = "); 

    if (b > 1 || b < -1) { 
     sb.append(b); 
    } else if (b == -1) { 
     sb.append('-'); 
    } 

    if (b != 0) { 
     sb.append('x '); 

     if (c > 0) { 
      sb.append('+'); 
     } else if (c < 0) { 
      sb.append('-'); 
     } 

     sb.append(' '); 
    } 

    sb.append(Math.abs(c)); 

    return sb.toString(); 
} 
+0

Une instruction 'return' est manquante. – saka1029

+0

@ saka1029 hein, j'ai traversé tous les problèmes et j'ai oublié la punchline. Merci d'avoir remarqué! Edité et fixé. – Mureinik

+0

Est-ce que 'b' est nécessairement un nombre entier? Je pensais à ces variables comme étant à virgule flottante, et je remarque que vous avez fait disparaître les valeurs de «b» entre -1 et 1. –