Нельзя преобразовать String
в int
, если только вы не знаете, что String
содержит действительное целое число.
Во-первых , лучше использовать класс Scanner для ввода, поскольку он быстрее
и вам не нужно вмешиваться в использование потоков, если вы
новичок Вот как Scanner
будет использоваться для ввода:
import java.util.Scanner; // this is where the Scanner class resides
...
Scanner sc = new Scanner(System.in); // "System.in" is the stream, you could also pass a String, or a File object to take input from
System.out.println("Would you like to ... Enter 'Y' or 'N':");
String input = sc.next();
input = input.toUpperCase();
char choice = sc.charAt(0);
if(choice == 'Y')
{ } // do something
else if(choice == 'N')
{ } // do something
else
System.err.println("Wrong choice!");
Этот код также может быть сокращен до одной строки (однако вы не будете
возможность проверить третье условие «неправильный выбор»):
if ( new Scanner(System.in).next().toUpperCase().charAt(0) == 'Y')
{ } // do something
else // for 'N'
{ } // do something
Во-вторых , char
в int
преобразование просто требует явного типа
литье:
char ch = 'A';
int i = (int)ch; // explicit type casting, 'i' is now 65 (ascii code of 'A')
В-третьих , даже если вы берете ввод из буферизованного потока ввода, вы
примет ввод в String
. Таким образом, извлечение первого персонажа из
и проверка строки просто требует вызова charAt()
функция с 0 в качестве параметра. Возвращает символ, который может
затем сравните его с одним символом в одинарных кавычках:
String s = in.readLine();
if(s.charAt(0) == 'Y') { } // do something
В-четвертых , очень плохая идея поместить всю программу в try
блок и catch
Exception
в конце. IOException
может быть
выдается функцией readline()
, а parseInt()
может выдать
NumberFormatException
, так что вы не сможете справиться с 2
исключения отдельно. В этом вопросе код достаточно мал для
это следует игнорировать, но на практике будет много функций
который может генерировать исключения, поэтому становится легко потерять отслеживание того, какая именно функция вызвала, какое исключение, и надлежащая обработка исключений становится довольно сложной.