努力刷题,每日三题,题目来源于《Java课后实战训练手册》----清华大学出版社。
第一题
使用 Integer 类的常用方法,指出条形码“6936983800013”中的“商品的国家代码”、“商品的生产厂商代码”、“商品的厂内商品代码”和“校验码”,运行结果如下图所示。
//标准答案
public class Barcode { // 创建一个Barcode类
public static void main(String[] args) {
String code = "6936983800013"; // 初始化一个String类型的变量code,给出一个十三位的条形码
System.out.println("解析条形码“6936983800013”的含义:");
String country = code.substring(0, 3); // 截取字符串,并将截取到的字符串给String类型的变量country
int countryNum = Integer.parseInt(country); // 把String类型的变量country传唤为int类型的变量countryNum
if (countryNum > 690 && countryNum < 695) { // 判断countryNum是否同时满足这两个条件
System.out.println(countryNum + ":\t" + "表示该商品的产地是中国大陆"); // 条件成立时,输出的信息(“\t”:光标移动到下一个水平制表)
} else {
System.out.println(countryNum + ":\t" + "表示该商品的产地是其他国家"); // 条件不成立时,输出的信息
}
System.out.println(code.substring(3, 8) + ":\t" + "表示该商品的生产厂商代码"); // 输出截取到的字符串,及其代表的含义
System.out.println(code.substring(8, 12) + ":\t" + "表示该商品的厂内商品代码"); // 输出截取到的字符串,及其代表的含义
System.out.println(code.substring(12) + ":\t" + "表示校验码"); // 输出截取到的字符串,及其代表的含义
}
}
补充 substring 的用法:
substring() 方法返回字符串的子字符串。
语法如下:
public String substring(int beginIndex)
或
public String substring(int beginIndex, int endIndex)
beginIndex --> 起始索引(包括), 索引从 0 开始。
endIndex --> 结束索引(不包括)。
第二题
对于double类型(基本类型)的数据,可以直接使用普通的运算符来进行比较,如“= =”。然而,对于Double类型(引用类型)却不行。引用类型如果使用“= =”来进行比较则判断内存地址是否相同,答案通常是否定的。本实例演示如何使用Double类中定义的方法来进行对象间比较,运行结果如下图所示。
public class DoubleTest {
public static void main(String[] args) {
Double number1 = 12.3;
Double number2 = 12.3;
System.out.println("number1:" + number1);
System.out.println("number2:" + number2);
switch (number1.compareTo(number2)) {
case -1:
System.out.println("number1 < number2");
break;
case 0:
System.out.println("number1 == number2");
break;
case 1:
System.out.println("number1 > number2");
break;
}
}
}
补充compareTo的用法:
compareTo() 方法用于将 Number 对象与方法的参数进行比较。可用于比较 Byte, Long, Integer等。只能进行相同数据类型的比较。
//语法:
public int compareTo( NumberSubClass referenceName )
referenceName -- 可以是一个 Byte, Double, Integer, Float, Long 或 Short 类型的参数。
第三题
一苹果商卖苹果有个 “不找零钱(四舍五入)” 习惯,苹果售价为每500克2.49元,苹果商输入顾客购买苹果的数量后,输出这些苹果的未经四舍五入的总价格与顾客的应付金额。
//标准答案
import java.util.Scanner;
public class Apples {
public static void main(String[] args) {
double price = 2.49;
System.out.println("苹果售价:" + price + "元RMB/斤。");
Scanner sc = new Scanner(System.in);
System.out.print("输入顾客购买苹果的重量(斤):");
double weight = sc.nextDouble();
double totalPrice = price * weight;
System.out.println("顾客购买的苹果总价格为" + String.format("%.1f", totalPrice) + "RMB。");
if (String.format("%.1f", totalPrice).contains(".5")) {
System.out.println("顾客的应付金额为" + (Math.round(totalPrice) + 1) + "RMB。");
} else {
System.out.println("顾客的应付金额为" + Math.round(totalPrice) + "RMB。");
}
sc.close();
}
}
补充round的用法:
round() 方法返回一个最接近的 int、long 型值,四舍五入。
//语法:
long round(double d)
//**************************//
int round(float f)
补充String contains() 用法:
contains() 方法用于判断字符串中是否包含指定的字符或字符串。
看下面这个栗子:
public class Main {
public static void main(String[] args) {
String myStr = "Runoob";
System.out.println(myStr.contains("Run"));
System.out.println(myStr.contains("o"));
System.out.println(myStr.contains("s"));
}
}
/*
结果:
true
true
false
*/
补充String.format()用法:
String.format()方法用于创建格式化的字符串以及连接多个字符串对象。
//例如:
System.out.println(String.format("我的名字叫%s", "小明")); // 打印:我的名字叫小明
有问题欢迎评论区留言,笔者才疏学浅,希望各位师傅不吝赐教。