下列程序执行后的输出结果应为( )。 public class Foo{ public static void main(String[] args){ String s = "29.13"; try{ double num1 = Double.parseDouble(s); System.out.print(num1); int num2 = Integer.parseInt(s); System.out.print(" "+num2); }catch(NumberFormatException e1){ System.out.print(" error!"); } } }
时间: 2024-02-14 22:14:26 浏览: 143
该程序执行后的输出结果应为:"29.13 error!"。
程序中首先将字符串"29.13"赋值给变量s,然后尝试将它转换为double类型的数值,由于字符串"29.13"可以被正确解析为一个double类型的数值,因此第一行的输出为"29.13"。接着,程序尝试将同一个字符串转换为int类型的数值,由于"29.13"不是一个合法的整数字符串,因此会抛出NumberFormatException异常。由于程序使用了try-catch语句来捕获该异常,因此程序会执行catch块中的代码,输出"error!"。因此程序的最终输出结果为:"29.13 error!"。
相关问题
以下程序执行后输出结果应为( )。 public class Foo{ public static void main(String[] args){ String s = "abc"; Integer i = 12; change(s, i); System.out.println(s + i); } static void change(String str, Integer a){ str += "def"; a += 10; } }
程序执行后输出结果应为:abc12。原因是Java中的String是不可变对象,所以在change方法中修改了str的值,但是并没有对原来的s对象进行修改。而Integer是可变对象,但是它是通过装箱(autoboxing)机制进行转换的,所以在change方法中对a进行的修改也不会影响原来的i对象,因此最终输出结果是abc12。
public class X { public static void main(String[] args) { String foo="ABCDE"; foo.substring(3); foo.concat("XYZ"); } }
这段代码定义了一个名为X的公共类。在main方法中,创建了一个名为foo的字符串变量,并将其初始化为"ABCDE"。然后,使用foo.substring(3)方法调用字符串的substring方法,该方法会返回从索引3开始的子字符串,但在此代码中没有接收和使用返回值,所以没有对foo进行修改。
接下来,使用foo.concat("XYZ")方法调用字符串的concat方法,该方法用于将指定的字符串附加到原始字符串的末尾,并返回新的字符串。但同样,代码中没有接收和使用返回值,所以对foo也没有进行修改。
因此,这段代码最终不会改变foo的值。
阅读全文