2016-09-23 4 views
0

Donc, je suis en train d'écrire un programme où je demande à l'utilisateur d'entrer un nombre, puis je renvoie la valeur absolue de ce nombre. Mon programme devrait permettre le signe + ou -. (ou aucun) Et aussi un nombre avec ou sans point décimal.Comment utiliser un nombre donné dans une chaîne pour calculer la valeur absolue?

Depuis que je suis un débutant, je ne veux pas utiliser une méthode avancée.

J'ai écrit quelque chose que je ne suis pas sûr si je suis dans la bonne voie. Vous pouvez voir comment je veux calculer la valeur absolue dans mon code.

Où je suis bloqué: comment extraire le nombre donné dans une chaîne et utiliser ce nombre pour calculer la valeur abs?

============================================= ============================

import java.util.Scanner; 

public class AValue { 
    public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 
    System.out.println("Enter a number:"); 
    String num = input.nextLine(); 

    if (num.matches("[+-][\\d].[\\d]")) 
    //calculation 
    System.out.println("The absolute value "); 
    else if (num.matches("[+-][\\d]")) 
    //calculation 
    System.out.println("The absolute value of " + num + " is "); 
    else if (num.matches("[\\d]")) 
    //calculation 
    System.out.println("The absolute value of " + num + " is "); 
    else if (num.matches("[\\d].[\\d]")) 
    //calculation 
    System.out.println("The absolute value of " + num + " is "); 
    else 
    System.out.println("Invalid number."); 

    //x = x * x; 
    //x = sqrt(x); 

    } 
} 
+2

Utiliser '' Double.parse' puis Math.abs' – talex

+0

Si vous voulez utiliser des chaînes seulement il suffit de cocher ce premier simbol est ''-'' et l'enlever par' String.remove() ' – talex

+0

que voulez-vous dire. veuillez donner un exemple – xxlali

Répondre

1

Utilisez ce code

Scanner input = new Scanner(System.in); 
double number = input.nextDouble(); 
System.out.println(Math.abs(number)); 
0

Vous n'avez pas à extraire quoi que ce soit, juste convertir l'entrée String-Double et appliquer Math.Abs sur elle, qui est la méthode intégrée de la valeur absolue. (https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html)

Check this out:

Scanner input = new Scanner(System.in); 
double num = Double.parseDouble(in.next()); 
System.out.println(Math.abs(num));