Игнорировать персонажей - PullRequest
0 голосов
/ 29 марта 2012

Сейчас я работаю над программой, которая может делить, добавлять, т.д., но я также делаю это для других, поэтому проблемы обычно имеют буквы. Какой код можно реализовать, чтобы моя программа игнорировала символы и фокусировалась только на числах?

редактировать

импорт статического java.lang.System.out; import java.util.Scanner;

публичный класс Триномиал { public static void main (заключительные аргументы String []) {

    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 ]

1 голос
/ 29 марта 2012

Вы можете попросить вашу программу проверить, является ли каждый символ, на который она смотрит, цифрой, используя Character.isDigit()

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

Возможно, вы также захотите пропустить свои математические операторы, например1007 *

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

Если это не то, что вам нужно, уточните свой вопрос, чтобы быть более конкретным.

0 голосов
/ 29 марта 2012

Во-первых, вам придется использовать метод next () из сканера, так как nextInt () вернет исключение, если следующий токен содержит нецифровые символы. Это будет читать токен как строку. Затем вы можете избавиться от нецифровых символов, например, создав пустую строку (по причинам производительности StringBuilder может быть лучше, но это усложняет ее), просматривая исходную строку и используя уже упомянутый метод isDigit () определить, является ли символ цифрой. Если это так, добавьте его в новую строку. Если у вас есть строка, содержащая только цифры, используйте метод Integer.parseInt (string), чтобы получить целочисленное значение.

Я не совсем уверен, почему вы каждый раз инициализируете новый сканер, я думаю, что вы должны иметь возможность использовать первый в своей программе.

...