忽略字符

时间:2012-03-28 21:33:05

标签: java math char divide

我现在在一个可以分割,添加,等等的程序上工作,但是,我也为其他人制作它,所以,问题通常也有字母。我可以实现什么代码,以便我的程序忽略字符,只关注数字?

修改

import static java.lang.System.out; import java.util.Scanner;

public class Trinomial {     public static void main(final String args []){

    final Scanner first = new Scanner(System.in);   
    out.print("Enter the first number: ");
    final int First = first.nextInt();

    final Scanner second = new Scanner(System.in);  
    out.print("Enter the second number: ");
    final int Second = second.nextInt();

    final Scanner third = new Scanner(System.in);   
    out.print("Enter the third number: ");
    final int Third = third.nextInt();

    numFactors(First);
}

}

2 个答案:

答案 0 :(得分:1)

您可以让程序使用Character.isDigit()

检查它看到的每个字符是否为数字

http://www.tutorialspoint.com/java/character_isdigit.htm

您可能还希望允许您的数学运算符通过,例如

if (Character.isDigit(input) || input == '+' || 
    input == '-' || input == '/' || input == '*')
{
    // Do something with input
}

如果这不是您想要的,请将您的问题改进为更具体。

答案 1 :(得分:0)

首先,您必须使用扫描程序中的next()方法,因为如果下一个标记包含非数字字符,则nextInt()将返回异常。这将把令牌读作String。然后,你可以通过创建一个空字符串去除非数字字符(出于性能原因,StringBuilder可以更好,但这使它更复杂),循环遍历原始字符串并使用已经提到的isDigit()方法确定该字符是否为数字。如果是,请将其添加到新字符串中。一旦你有一个只包含数字的字符串,使用Integer.parseInt(string)方法来获取整数值。

我不太确定,为什么每次都会初始化一个新的扫描仪,我认为你应该能够在整个程序中使用第一个扫描仪。