第9章_Java常用类面试常考题
1.String s = new String("xyz");创建了几个String Object
答:两个,一个字符对象,一个字符对象引用对象
2.Math.round(11.5)等于多少? Math.round(-11.5)等于多少
答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor
3.请编写一个 Application 实现如下功能:接受命令行中给出的一个字母串,先将该串原样输出,然后判断该串的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母输出;否则输出信息串”第一个字母不是大写字母!”。
System.out.println("a string?"); Scanner scanner = new Scanner(System.in); // 输入的字符串 String s = scanner.nextLine(); int count = 0;//大写字母的个数 StringBuffer stringBuffer = new StringBuffer(""); System.out.println("先将该串原样输出 \n" + s); if (s == null){ System.out.println("wrong string"); return; } if ('A' <= s.charAt(0) && s.charAt(0) <= 'Z'){ for (int i = 0; i < s.length(); i++) { if ('A' <= s.charAt(i) && s.charAt(i) <= 'Z'){ count++; stringBuffer.append(s.charAt(i)); } } System.out.println("该串中大写字母的个数:\n" + count); System.out.println("并将所有大写字母输出:\n" + stringBuffer); } else{ System.out.println("第一个字母不是大写字母!"); }
4.创建BigDecimalDemo类,在类中分别定义add(),sub(),mul()和div()方法实现加、减、乘、除运算,并输出运算结果。要求除法,可以处理商的精度。
public class BigDecimalDemo { static final int location = 10; private static double value1; private static double value2; public static BigDecimal sub(double value1,double value2){ BigDecimal bigDecimal1 = new BigDecimal(Double.toString(value1)); BigDecimal bigDecimal2 = new BigDecimal(Double.toString(value2)); return bigDecimal1.subtract(bigDecimal2); } // 定义一些方法 // 加法 public static BigDecimal add(double value1,double value2){ BigDecimal bigDecimal1 = new BigDecimal(Double.toString(value1)); BigDecimal bigDecimal2 = new BigDecimal(Double.toString(value2)); return bigDecimal1.add(bigDecimal2); } // 减法 public static BigDecimal subtract(double value1,double value2){ BigDecimal bigDecimal1 = new BigDecimal(Double.toString(value1)); BigDecimal bigDecimal2 = new BigDecimal(Double.toString(value2)); return bigDecimal1.subtract(bigDecimal2); } // 乘法 public static BigDecimal mul(double value1,double value2){ BigDecimal bigDecimal1 = new BigDecimal(Double.toString(value1)); BigDecimal bigDecimal2 = new BigDecimal(Double.toString(value2)); return bigDecimal1.subtract(bigDecimal2); } // 除法 10位 public static BigDecimal div(double value1,double value2){ return div(value1,value2,location); } // 除法,重载的类 public static BigDecimal div(double value1,double value2,int b){ BigDecimal bigDecimal1 = new BigDecimal(Double.toString(value1)); BigDecimal bigDecimal2 = new BigDecimal(Double.toString(value2)); if (bigDecimal2.equals(0)) { return BigDecimal.valueOf(0); } else { return bigDecimal1.divide(bigDecimal2,b,BigDecimal.ROUND_HALF_UP); } } } public class Main { public static void main(String[] args) { BigDecimalDemo b=new BigDecimalDemo(); System.out.println("两个数字相加结果:"+b.add(-7.5, 8.9)); System.out.println("两个数字相减结果:"+b.sub(-7.5, 8.9)); System.out.println("两个数字相乘结果:"+b.mul(-7.5, 8.9)); System.out.println("两个数字相除结果,结果小数后保留10位:"+b.div(10, 2)); System.out.println("两个数字相除,结果保留小数后5位:"+b.div(-7.5, 8.9,5)); } }