JAVA刷题集|刷题的狂欢-----JAVA每日三练-----第四天

努力刷题,每日三题,题目来源于《Java课后实战训练手册》----清华大学出版社。
【JAVA刷题集|刷题的狂欢-----JAVA每日三练-----第四天】第一题
使用 Integer 类的常用方法,指出条形码“6936983800013”中的“商品的国家代码”、“商品的生产厂商代码”、“商品的厂内商品代码”和“校验码”,运行结果如下图所示。
JAVA刷题集|刷题的狂欢-----JAVA每日三练-----第四天
文章图片

//标准答案 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类中定义的方法来进行对象间比较,运行结果如下图所示。
JAVA刷题集|刷题的狂欢-----JAVA每日三练-----第四天
文章图片

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元,苹果商输入顾客购买苹果的数量后,输出这些苹果的未经四舍五入的总价格与顾客的应付金额。
JAVA刷题集|刷题的狂欢-----JAVA每日三练-----第四天
文章图片

//标准答案 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", "小明")); // 打印:我的名字叫小明

有问题欢迎评论区留言,笔者才疏学浅,希望各位师傅不吝赐教。

    推荐阅读