应该在java@1.5中将字符串转换为Int还是使用其他方法?
我正在编写一个程序,我想通过按任意键(字符或数字)来终止程序,因此我使用Integer.parseInt(variable)方法将字符串转换为int,并比较选项如果不是所需的选项,它应该终止程序,但在线程“main”中显示错误异常java.lang.NumberFormatException:对于输入字符串:“d” 程序代码如下:-应该在java@1.5中将字符串转换为Int还是使用其他方法?,java,Java,我正在编写一个程序,我想通过按任意键(字符或数字)来终止程序,因此我使用Integer.parseInt(variable)方法将字符串转换为int,并比较选项如果不是所需的选项,它应该终止程序,但在线程“main”中显示错误异常java.lang.NumberFormatException:对于输入字符串:“d” 程序代码如下:- public class mainClass { public static void main( String[] ar ) { doub
public class mainClass {
public static void main( String[] ar ) {
double res = 0;
Scanner in = new Scanner( System.in );
Tdata td1 = new Tdata(); // another class object
System.out.println( "****Temperature Conversion****" );
System.out.println( "------------------------------" );
System.out.println( "Press 1-> C2F" );
System.out.println( "Press 2-> F2C" );
System.out.println( "<- Press aNY kEY TO Exit ->" );
String choice = in.nextLine();
// =======================================================
int ch = Integer.parseInt( choice );
System.out.println( "String has converted: " + ch );
// verifying if converted into int
if( ch == 1 || ch == 2 ) {
if( ch == 1 ) {
td1.getVal( 37.4 );
res = td1.C2F();
System.out.println( "Resulted Temperature: " + res );
}
else if( ch == 2 ) {
td1.getVal( 104.2 );
res = td1.F2C();
System.out.println( "Resulted Temperature: " + res );
}
else {
System.out.println( "mind your input plz" );
}
}
else {
System.out.println( "<- You select to exit ->" );
System.exit( 0 );
}
// =======================================================
}// end of main
}// end of public class
public类mainClass{
公共静态void main(字符串[]ar){
双res=0;
扫描仪输入=新扫描仪(System.in);
Tdata td1=新Tdata();//另一个类对象
System.out.println(“****温度转换****”);
System.out.println(“-----------------------------------”);
System.out.println(“按1->C2F”);
System.out.println(“按2->F2C”);
System.out.println(“”);
String choice=in.nextLine();
// =======================================================
int ch=Integer.parseInt(选项);
System.out.println(“字符串已转换:”+ch);
//验证是否转换为int
如果(ch==1 | | ch==2){
如果(ch==1){
td1.getVal(37.4);
res=td1.C2F();
System.out.println(“结果温度:+res”);
}
否则如果(ch==2){
td1.getVal(104.2);
res=td1.F2C();
System.out.println(“结果温度:+res”);
}
否则{
System.out.println(“注意输入plz”);
}
}
否则{
System.out.println(“”);
系统出口(0);
}
// =======================================================
}//干管末端
}//公共课结束
现在我认为我应该将不需要的输入转换为它以前的状态,即字符串状态。。这是正确的方法还是应该尝试api中提供的另一种预定义方法
-谢谢!
Niks比较字符,而不是将其转换为整数:
if (choise.isEmpty()) {
//user pressed Enter
} else if (choise.charAt (0) == '1') {
//user pressed 1
} else if (choise.charAt (0) == '2') {
//user pressed 2
} else {
//user pressed another key(s). exit here
}
由于您已经在使用
扫描仪
,因此您最好使用hasNextInt()
和nextInt()
而不是执行Integer.parseInt()
尝试以下代码段:输入数字、非数字等。完成后输入0
Scanner sc = new Scanner(System.in);
do {
System.out.println("Enter code: ");
while (!sc.hasNextInt()) {
System.out.println("int, please!");
sc.next();
}
int num = sc.nextInt();
if (num == 0) break;
System.out.println("Got " + num);
} while (true);
System.out.println("DONE!");
if(choise.isEmpty(){
-看起来您忘记了结束条件的括号。另外,它是“选择”--拼写和OP的变量名。谢谢!添加了右括号。关于choice vs choise:我不是母语人士,我的字典能识别这两个词并给出相同的翻译。正确的词是什么?你的字典必须是lerping这个词,choise是正确的,choise不存在。新代码会出错,我只是更改了erroneous代码和新代码。它说:-mainClass.java:43:找不到symbol
symbol:method isEmpty()
位置:class java.lang.String if(choice.isEmpty())
^(我没有太多经验,但由于最近的几个错误,我知道这1发生在父类中没有定义方法/子类时。)然而,我已经注释掉了受感染的代码(if block),而不是程序得到了执行我真的不能让我的回答像你的那样易读;非常感谢编辑了我上述问题描述的人,我猜是tangens:)非常感谢