2016-09-24 41 views
-1

我有一个绝对值的程序,现在它接受像1 + 1 -1这样的数字,但我也需要它能够接受小数作为来自用户的有效输入。我也需要使用intString.matches方法。我会怎么做呢? 这里是应该重做如何更改我的程序以接受不同的输入?

import java.util.Scanner; 

public class absolutevalue { 
public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    System.out.print(" Type in a number "); 
    String inStr = input.nextLine(); 

    if (inStr.matches("//d")) 
    System.out.println("The absolute value is" +inStr); 
    else 
    System.out.println("not even close"); 
    input.close(); 
} 
} 
+1

试试这个:double num = Double.parseDouble(in.next()); – codemirel

+1

到目前为止你尝试了什么?发布您的代码!当你运行它时发生了什么?你预期会发生什么?你有什么特别的问题? – Robert

+0

我必须重做它,但idk从哪里开始。这是我的。我知道我需要把类似if(inString.matches(// d等),但我不是100%的括号内的表达式 –

回答

0

你可以做到这一点与

Float num = input.nextFloat(); 

您的代码将是这样的代码IM ...

import java.text.DecimalFormat; 
import java.util.Scanner; 

public class AbsoluteValue { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     System.out.print(" Type in a number "); 
     Float num = input.nextFloat(); 

     if (num < 0) { 
      num = num * -1; 
     } 

     System.out.println("The absolute value is " + num); 
     input.close(); 
    } 
} 
0

您可以接受字符串, double,float,big decimal,boolean来自用户发生小的变化,例如:

import java.util.Scanner; 
public class absolutevalue { 
public static void main(String[] args) { 
    Scanner input = new Scanner(System.in); 

    System.out.print(" Type in a number "); 
    int num = input.nextInt(); // for Int. 
    String str = input.next(); // for String. 
    String str = input.nextLine(); // for line of String. 
    double num = input.nextDouble(); // for double. 
    float str = input.nextFloat(); // for float. 

    if (num <0){ 
    num = num * -1; 
    } 

    System.out.println("The absolute value is " + num); 
    input.close(); 
} 
} 
相关问题