2012-03-28 235 views
0

我现在正在开发一个程序,它可以分割,添加等等,但是,即时消息也可以为其他人使用,因此,问题通常也包含字母。我可以执行哪些代码,以便我的程序忽略字符,并只专注于数字?忽略字符

编辑

进口静态文件java.lang.System.out; import java.util.Scanner;

公共类三叉{ 公共静态无效的主要(最终字符串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); 
} 

}

+1

好的解决方案在这里:http://stackoverflow.com/questions/1102891/how-to-check-a-string-is-a-numeric-type-in​​-java – sikander 2012-03-28 21:34:37

+0

你可以使用'Character.isDigit( c)'如果给定的字符是数字? – twain249 2012-03-28 21:37:23

回答

0

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

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

1

你可以有你的程序检查每个看起来人品是否使用Character.isDigit()一个数字

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

您可能还需要让你的数学运算符通过例如

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

如果这不是你要找的,请改善你的问题,以更具体。

+0

让我改说一下。我的意思是,如果程序找到任何角色,忽略它。将它删除,删除它。 – 2012-03-28 21:41:19

+0

@AbrahamAndujo:你有现有的代码可以发布吗?没有更多的上下文很难给出一个好的答案。 – 2012-03-28 21:48:46

+0

那里,编辑我的帖子 – 2012-03-28 22:12:12