Discription:
Я использовал несколько характеристик сканера в приведенном ниже коде. Сначала я читаю «Адрес», а затем «Мобильный №». а затем некоторые случайные вещи от пользователя.
Когда я использую adress=sc.next()
считывает строковое значение адреса от пользователя (без пробела) и переходит к оператору следующего сканирования, т.е. mobile=sc.nextBigInteger()
. с помощью этого метода я не могу прочитать пробелы в «адрес (строка)», и он выдает ошибку времени выполнения в качестве inputMismatchException.
Теперь, если я использую adress=sc.NextLine
, программа напрямую переходит к mobile=sc.nextBigInteger()
.
Как можно прочитать пробелы как ввод в вышеприведенных ситуациях и в приведенном ниже коде. Как я могу защитить себя от ошибок во время выполнения. Я получил похожие вопросы на форуме, но ни один из них не был удовлетворительным. Спасибо. (Спросите меня, если вам нужна дополнительная информация о вопросе)
Ожидаемая:
ввод (в адресной строке): махараштра пуна индия
вывод (в функции дисплея): махраштра Пуна Индия.
Что именно произошло: если ввод (в адресной строке): вывод pune (в функции отображения): pune
если вводится (в строке адреса): Pune India
(Теперь, как только я ввел строку и нажал там, я получил ошибку времени выполнения как inputmismatchexception)
> JAVA
public class Data {
Scanner sc = new Scanner(System.in);
String adress;
BigInteger AcNo;
BigInteger mobile;
String ifsc;
void getData() {
System.out.println("Welcome to Bank System");
System.out.println("Please Enter the adress :");
adress= sc.next();
System.out.println("Enter the Mobile Number");
mobile = sc.nextBigInteger();
System.out.println("Enter the Account Number");
AcNo = sc.nextBigInteger();
System.out.println("Enter the IFSC Code");
ifsc= sc.next();
}
public static void main(String[] args) {
Data d=new Data();
d.getData();
}
}